Admin is Trac Ion de Oracle

Click here to load reader

  • date post

    11-Jun-2015
  • Category

    Documents

  • view

    1.193
  • download

    9

Embed Size (px)

Transcript of Admin is Trac Ion de Oracle

Qu es Oracle? Oracle es un Sistema de Gestin de Bases de Datos Relacional (SGBDR). Es la base de datos ms utilizada actualmente. Caractersticas: Mecanismos de seguridad: acceso a losdatos segn privilegios concedidos por el administrador. Sofisticados procedimientos para hacer copias de seguridad y recuperar datos.

Copia de seguridad y recuperacin: Gestin del espacio: Podemos asignarespacio en disco para almacenar datos y controlar ese espacio.

Conectividad abierta: Es posible accedera datos de Oracle usando SW de otros fabricantes.

Herramientas de desarrollo: el motor de

la base de datos, Oracle Server, admite una amplia gama de herramientas de desarrollo de aplicaciones: de consulta para el usuario y de gestin de la informacin.Tema 9_ Administracin de Oracle 1

Herramientas Oracle Oracle Server: es el motor de la BD. Permitealmacenar grandes cantidades de datos, proporcionando a los usuarios un rpido acceso. Los datos almacenados se pueden compartir entre varias aplicaciones.

Personal Oracle: es la BD Oracle para

ordenadores personales en entornos DOS y Windows, una implementacin del Oracle Server. gestin administrativa (mensajera, ortografa, ..) una BD Oracle de forma rpida.

Oracle Office: Conjunto de productos para

Oracle Loader: Permite introducir datos en Designer 2000: Permite disear, programar,implementar y mantener sistemas.

Developer 2000: Formada por un conjunto de productos: SQL*Plus: El SQL de Oracle. Lenguaje de consultas de BD. Oracle Forms: Disea las pantallas de introduccin de datos y consultas. Oracle Reports: Generador de informes. Oracle Book: Visualizar y crear documentos Oracle Graphics: Crear grficos en Oracle.Tema 9_ Administracin de Oracle 2

Arquitectura Oracle Una BD es un conjunto de archivos de datos y el software que los maneja.

Componentes de la BD Estructura de la memoria Procesos de soporte de la BD Qu es una instancia Oracle? Gestin de seguridad Gestin de tablespaces Otros objetosTema 9_ Administracin de Oracle 3

Componentes BD OracleSon: Archivos de datos (database files) Archivos de diario o registro de transacciones (log files) Archivos de control (control files)

Tema 9_ Administracin de Oracle

4

Componentes BD OracleArchivos de datos Archivos de datos: contienen toda la informacin de la BD: datos de usuario y datos de sistema. Antes de poder introducir datos en la BD hay que: Crear Tablespaces: espacio reservado para almacenar las tablas. Las Tablespaces nos ayudan a organizar la informacin de la BD. Podemos tener un tablespace para almacenar los datos de la aplicacin de almacn, otro para la aplicacin de nminas, Cada tablespace consta de uno o ms archivos en disco. Un archivo de datos slo puede pertenecer a un nico tablespace Al instalar Oracle se crean 4 tablespaces: SYSTEM: tablespace donde Oracle almacena toda la informacin que necesita para gestionarse a s misma. USER_DATA o USERS: contiene informacin personal de los usuarios y tambin podemos almacenar las tablas para realizar pruebas. TEMPORARY_DATA o TEMP: Aqu Oracle almacena las tablas temporales (para gestionar sus transacciones).Tema 9_ Administracin de Oracle 5

Componentes BD OracleArchivos de datos ROLLBACK_DATA o RBS: donde Oracle guarda la informacin de deshacer, se utiliza para almacenar la imagen anterior de los datos antes de permitir actualizaciones. Esto permite recuperar los datos cuando no se completa una transaccin.

Correspondencia entre los tablespaces y los archivos de datos:TABLESPACESYSTEM USER_DATA TEMPORARY_DATA ROLLBACK_DATA

ARCHIVOS DE DATOSSYS1ORCL.ORA, SYS2ORCL.ORA.. USR1ORCL.ORA TMP1ORCL.ORA RBS1ORCL.ORA,RBS2ORCL.ORA,

Podemos ver a travs de la vista DBA_DATA_FILES (conectndonos como administrador), los ficheros de datos y sus tablespaces correspondientes: SQL> SELECT FILE_NAME, TABLESPACE_NAME FROM DBA_DATA_FILES;Tema 9_ Administracin de Oracle 6

Componentes BD OracleArchivos de diario Archivos de diario o registro de transacciones o de rehacer: son los archivos de datos donde Oracle registra todas las transacciones o modificaciones (INSERT, UPDATE Y DELETE) que se producen en la BD. Esto permite recuperar los datos, si hay problemas. Normalmente hay dos registros rehacer almacenados fsicamente: LOG1ORCL.ORA y LOG2ORCL.ORA

Un registro rehacer o Redo_log contiene: Identificacin de la transaccin Direccin del bloque Nmero de dila Nmero de columna Valor anterior Nuevo valor modificado

Tema 9_ Administracin de Oracle

7

Componentes BD OracleArchivos de control Archivos de control: contiene informacin sobre los archivos asociados con una BD Oracle. Todas las modificaciones importantes sobre la estructura de la BD se registran en el archivo de control. Mantienen la integridad de la BD. Es recomendable tener dos archivos de control por si uno se estropea. Los archivos de control se llaman CTL1ORCL.ORA y CTL2ORCL.ORA Un archivo de control contiene: Informacin de arranque y parada Nombre de los archivos de la BD y del Redo_Log. Informacin sobre checkpoints (puntos de control) Fecha de creacin y nombre de la BD. Estado on-line y off-line de los archivos

Tema 9_ Administracin de Oracle

8

Los procesos de usuario (cliente) y del servidor se comunican consigo mismos y entre ellos por medio de estructuras de memoria. Oracle dispone de dos tipos de estructuras de memoria:

Estructura de la memoria

rea global del sistema SGA: permite la comunicacin entre los diversos procesos del cliente y del servidor. Tambin mantiene la informacin ms consultada sobre la BD. Tiene 3 zonas: Buffers del bloque de datos (los bloques de datos ms utilizados) Buffers del registro de rehacer(se registran las transacciones o cambios antes de escribirse en los registros de rehacer. Fondo comn SQL compartido: contiene las sentencias SQL ya ejecutadas sobre la BD. rea global del programa PGA: es la zona de memoria utilizada por un nico proceso de usuario de Oracle y contiene datos e informacin de ese proceso.Tema 9_ Administracin de Oracle 9

Procesos de soporte Procesos de usuario: solicitan informacin a los procesos de servidor. Ejemplos: SQL*Plus, Oracle Forms, Oracle Reports.

Procesos de servidor: reciben petidiciones de los procesos de usuario y se comunican con la BD para satisfacerlas. Ejemplos de procesos de servidor o de soporte: Escritor de BD DBWR Punto de comprobacin o control CKPT (ChekPoint) Escritor de registros LGWR Supervisor del sistema SMON Supervisor de proceso PMON Archivador ARCH Recuperador RECOTema 9_ Administracin de Oracle 10

La BD de Oracle ms elemental consta de: Uno o ms archivos de datos. Uno o ms archivos de control Dos o ms archivos de Redo_log

RESUMEN

Internamente, esta base de datos contiene: Varios usuarios/esquemas. Uno o ms segmentos de rollback Uno o ms espacios de tablas Tablas del diccionario de datos El diccionario de datos es una BD donde se almacena toda la descripcin de la BD.

Objetos de usuarios (tablas, vistas,..)

El servidor que accede a esta BD consta, como mnimo de: Un SGA, memoria global del sistema El proceso SMON, supervisor del sistema El proceso PMON, supervisor del proceso El proceso DBWR, el archivador El proceso RECO, el recuperador Procesos de usuario con PGA (memoria para el proceso) asociado. Tema 9_ Administracin 11de Oracle

Qu es una instancia Oracle? Una instancia Oracle es un conjunto de procesos background o de fondo y una zona de memoria denominanda SGA. Tiene dos tipos de procesos: procesos de usuario y procesos Oracle. No incluye archivos de la BD, archivos de Redo_log ni archivos de control.

Tema 9_ Administracin de Oracle

12

Gestin de seguridad Gestin de usuarios y concesin de privilegios a los usuarios. Es el administrador de la BD el responsable de permitir o denegar el acceso a los usuarios a determinados objetos o recursos de la BD. Podemos clasificar la seguridad de la BD en dos categoras: Seguridad del sistema: Control del accesoy uso de la BD a nivel del sistema. Conexin de un usuario a la BD.

Seguridad de los datos: Control del

acceso y uso de la BD a nivel de objetos. Acceso de un usuario a un objeto (tabla, vista,..) Tipo de operaciones que se pueden realizar sobre el objeto: INSERT, SELECT,..Tema 9_ Administracin de Oracle 13

Gestin de seguridad Usuarios Un usuario es un nombre definido en la BD que se puede conectar a ella y acceder a determinados objetos segn ciertas condiciones que define el administrador. Para acceder a la BD, los usuarios deben ejecutar una aplicacin de BD, como SQL*Plus, Oracle Forms y Oracle Rerport, y conectarse usando el nombre definido en la BD. Asociado a cada usuario de la BD hay un esquema con el mismo nombre Un esquema es una coleccin lgica de objetos (tablas, vistas, secuencias, sinnimos, ndices, clusters, procedures) Por defecto, cada usuario tiene acceso a todos los objetos de su esquema correspondiente.Tema 9_ Administracin de Oracle 14

Gestin de seguridad Usuarios Creacin de usuarios: Al instalar la BD Oracle se crean automticamente dos usuarios con el privilegio de DBA (Administrador de BD): SYS y SYSTEM. Sus contraseas son: SYS change_on_install SYSTEM MANAGER

El usuario SYSTEM es creado por Oracle para realizar las tareas de administracin de la BD. Para crear usuarios se necesita el privilegio CREATE USER.

CREATE USER nombre_usuario IDENTIFIED BY clave_acceso [DEFAULT TABLESPACE espacio_tabla] [TEMPORARY TABLESPACE espacio_tabla] [QUOTA {entero {K|M} | UNLIMITED} ON espacio_tabla] [PROFILE perfil]; CREATE USER: crea un nombre de usuario que ser identificado por el sistema.

Sintaxis:

Tema 9_ Administracin de Oracle

15

Gestin de seguridad Usuarios IDENTIFIED BY: permite dar una clave de acceso al usuario creado. DEFAULT TABLESPACE: asigna a un usuario el tablespace por defecto para almacenar los objetos que cree. Si no se asigna ninguna, el tablespace por defecto ser SYSTEM. TEMPORARY TABLESPACE: especifica el nombre de tablespace para trabajos temporales. Si no especificamos ninguno el tablespace por defecto es SYSTEM. Es muy recomendable utilizar otro tablespace distinto a SYSTEM. QUOTA: asigna un espacio en megabytes o kilobytes en el tablespace asignado. Si no especificamos nada, el usuario no tiene cuota asignada y no podr crear objetos en el tablespace. Si un usuario dispone de acceso y recursos ilimitados a cualquier tablespace, se le debe de dar el correspondiente privilegio. PROFILE: asigna un perfil al usuario. Si se omite esta clusula se asigna el perfil por defecto. Un perfil limita el nmero de sesiones concurrentes de un usuario, limita el tiempo de uso de la CPU, el tiempo de una sesin,Tema 9_ Administracin de Oracle 16

Gestin de seguridad Usuarios Modificacin de usuarios: Las opciones dadas a un usuario con CREATE USER, se pueden modificar con la orden ALTER USER. Sintaxis: ALTER USER nombre_usuario IDENTIFIED BY clave_acceso [DEFAULT TABLESPACE espacio_tabla] [TEMPORARY TABLESPACE espacio_tabla] [QUOTA {entero {K|M} | UNLIMITED} ON espacio_tabla] [PROFILE perfil]; Los parmetros significan los mismo que en la orden CREATE USER. Un usuario no puede cambiar ni su tablespace, ni su quota, pero s su PASSWORD.Tema 9_ Administracin de Oracle 17

Gestin de seguridad Usuarios Borrado de usuarios: Para borrar a un usuario de la BD, incluidos los objetos que contiene, se emplea la orden DROP USER. Sintaxis: DROP USER usuario [CASCADE]; La opcin CASCADE suprime todos los objetos antes de borrar el usuario. Cuando se intenta eliminar un usuario y ste tiene tablas que le pertenecen, el sistema no nos dejar borrarlo sin borrar en cascada sus objetos.

Tema 9_ Administracin de Oracle

18

Gestin de seguridadUsuarios Vistas ALL_USERS y DBA_USERS: estas vistas contienen informacin sobre todos los usuarios creados en la BD. DESC: de DESCribe, muestra la descripcin o resumen de la tabla y sus columnas. Nombre de columna: Name Si admite nulos o no: Null? Tipo de datos: Type DESC SYS.ALL_USERS;

NameUSERNAME USER_ID CREATED

Null?NOT NULL NOT NULL NOT NULL

TypeVARCHAR2(30) NUMBER DATE

SELECT * FROM ALL_USERS;

USERNAMESYS SYSTEM MAJESUS

USER_ID0 5 21Tema 9_ Administracin de Oracle

CREATED16/07/97 16/07/97 23/07/9919

Gestin de seguridad DESC SYS.DBA_USERS; NameUSERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPA CE NOT NULL NOT NULL

UsuariosNull?NOT NULL NOT NULL

TypeVARCHAR2(30) NUMBER VARCHAR2(30) VARCHAR2832) DATE DATE VARCHAR2(30) VARCHAR2(30) DATE VARCHAR2(30) VARCHAR2(4000)

TEMPORARY_TABLES NOT NULL PACE CREATED PROFILE EXTERNAL_NAME NOT NULL NOT NULL

SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS;

USERNAME SYS SYSTEM MAJESUS

DEFAULT_TABLESPACE SYSTEM USER_DATA USER_DATATema 9_ Administracin de Oracle 20

de la BD de realizar determinadas operaciones o acceder a determinados objetos de otros usuarios. Ningn usuario puede llevar a cabo una operacin si antes no se le ha concedido el permiso. Cuando se crea un usuario es preciso darle privilegios para que pueda hacer algo. Oracle dispone de varios roles o funciones. Un rol es un conjunto de privilegios. PrivilegiosALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE y CREATE VIEW. CREATE CLUSTER, CREATE PROCEDURE, CREATE TABLE, CREATE SEQUENCE y CREATE TRIGGER. Posee todos los privilegios del sistema. SELECT ANY TABLE, BACKUP ANY TABLE, INSERT, UPDATE, DELETE sobre las tablas SYS.INCVID, SYS.INCFIL y SYS.INCEXP. BECOME USER. El rol anterior y ste, ofrecen derechos de exportar o importar la base de datos completa.Tema 9_ Administracin de Oracle 21

Gestin de seguridad Privilegios usuario dentro Un privilegio es la capacidad de un

RolesCONNECT

RESOURCE

DBA EXP_FULL_ DATABASE IMP_FULL_ DATABASE

Hay dos tipos de privilegios que se pueden definir en una BD: privilegios sobre los objetos y privilegios del sistema Privilegios sobre los objetos: nos permiten acceder y realizar cambios en los datos de otros usuarios. Privilegio sobre objetosALTER DELETE EXECUTE INDEX INSERT SELECT UPDATE X X X X X X X X

Gestin de seguridad Privilegios

Tabla

Vista

Secuencia

Procedure

X X X

X X

REFERENCES X

Tema 9_ Administracin de Oracle

22

Las sentencias SQL permitidas con cada privilegio son: Privilegios sobre los objetosALTER DELETE EXECUTE INDEX INSERT REFERENCES

Gestin de seguridad Privilegios

Sentencias SQL permitidas con cada privilegioALTER objeto (tabla o secuencia) DELETE FROM objeto (tabla o vista) EXECUTE objeto (procedimiento) CREATE INDEX ON objeto (slo tablas) INSERT INTO objeto (tabla o vista) CREATE o ALTER TABLE definiendo una restriccin de integridad de clave ajena sobre el objeto (slo tablas) SELECT . FROM objeto (tablas, vista) Sentencia SQL utilizando un generador de secuencias. UPDATE objeto (tabla o vista)

SELECT

UPDATE

Tema 9_ Administracin de Oracle

23

Gestin de seguridad Privilegios La orden para dar privilegios sobre los objetos es GRANT, con el siguiente formato: GRANT {priv_objeto [,priv_objeto] |ALL [PRIVILEGES]} ON [usuario.] objeto TO {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC}] [WITH GRANT OPTION]; Donde, ON, especifica el objeto sobre el que se dan los privilegios. TO, identifica a los usuarios o roles a los que se conceden los privilegios. ALL, concede todos los privilegios sobre el objeto especificado. La clusula WITH GRANT OPTION permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles. PUBLIC, asigna los privilegios a todos los usuarios actuales y futuros. El propsito general del grupo PUBLIC, es garantizar el acceso a determinados objetos a todos los usuarios de la BD.Tema 9_ Administracin de Oracle 24

SQL>CONNECT MILAGROS/MILAGROS00 Nos conectamos como el usuario Milagros SQL>GRANT INSERT ON TABLA1 TO JUAN; Milagros da privilegios a Juan para insertar datos en Tabla1. SQL>GRANT SELECT, INSERT ON TABLA1 TO FRANCISCO; Milagros da privilegios a Francisco para consultar e insertar datos en Tabla1. Juan tendra que referenciar a la tabla Tabla1 como: Milagros.Tabla1. SQL>GRANT ALL ON TABLA1 TO ROSA; Milagros concede todos los privilegios sobre Tabla1 a Rosa. SQL>GRANTALL ON TABLA1 TO PUBLIC; Milagros concede todos los privilegios sobre Tabla1 a todos los usuarios existentes y los que se creen en adelante. SQL>GRANT UPDATE(TEMPERATURA) ON TABLA1 TO JUAN; Milagros concede el privilegio a Juan de modificar unicamente el campo Temperatura de la tabla Tabla1. SQL>GRANT INSERT ON TABLA1 TO FRANCISCO WITH GRANT OPTION; Milagros concede el privilegio de insertar datos en Tabla1 a Francisco y ste podr conceder este mismo permiso a otros usuarios.Tema 9_ Administracin de Oracle 25

Ejemplos:

Gestin de seguridad Privilegios

Gestin de seguridad Privilegios Los privilegios de sistema son los que dan derecho a ejecutar un tipo de comando SQL o a realizar alguna accin sobre objetos de un tipo especificado. Por ejemplo el privilegio para crear tablespaces es un privilegio de sistema. Existen unos 80 tipos de privilegios distintos. Algunos de ellos son los del anexo entregado.Tema 9_ Administracin de Oracle 26

GRANT {privilegio|rol} [,{privilegio|rol},] TO {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC}] [WITH ADMIN OPTION]; Donde, TO, identifica a los usuarios o roles a los que se conceden los privilegios. La clusula WITH ADMIN OPTION permite que el receptor del privilegio o rol pueda conceder esos mismos privilegios a otros usuarios o roles. Ejemplo: SQL>GRANT CONNECT TO PEDRO; Se concede a Pedro el rol de connect, con todos los privilegios asociados. SQL>GRANT DBA TO PEDRO, JUAN; Se concede a Pedro y Juan los privilegios de Administrador del sistema. SQL> GRANT DROP USER TO MILAGROS WITH ADMIN OPTION; Se concede el privilegio a Milagros de borrar usuarios y que esta pueda conceder este mismo privilegio a otros usuarios. SQL>GRANT SELECT ANY TABLE TO PUBLIC; Hacemos que todos los usuarios puedan hacer Select sobre cualquier tabla. Tema 9_ Administracin 27de Oracle

Gestin de seguridad Privilegios sistema es: La orden para dar privilegios del

Gestin de seguridad Privilegios La orden para retirar privilegios es: Para retirar privilegios de objetos a los usuarios: REVOKE {priv_objeto [,priv_objeto]|ALL|[PRIVILEGES]} ON [usuario.]objeto FROM {usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC]; Para retirar privilegios de sistema o roles a usuarios: REVOKE [priv_sistema|rol} [,{priv_sistema|rol}]; FROM [usuario|rol|PUBLIC} [,{usuario|rol|PUBLIC}]; Ejemplos: SQL>REVOKE SELECT,UPDATE ON TABLA1 FROM FRANCISCO; SQL>REVOKE ALL ON TABLA1 FROM FRANCISCO,JUAN; REVOKE DROP USER FROM MILAGROS; REVOKE DBA FROM JUAN, PEDRO; NOTA: la opcin WITH GRANT OPTION, desaparece con el privilegio con el que fue asignada.

Tema 9_ Administracin de Oracle

28

Gestin de seguridad Privilegios Vistas con informacin de privilegios:

SESSION_PRIVS: privilegios del usuario activo USER_SYS_PRIVS:privilegios de sistema asignados al usuario. DBA_SYS_PRIVS:privilegios de sistema asignados a los usuarios o roles. USER_TAB_PRIVS:concesiones sobre objetos que son propiedad del usuario, concedidos o recibidos por ste. USER_TAB_PRIVS_MADE: concesiones sobre objetos que son propiedad del usuario (asignadas). USER_TAB_PRIVS_RECD: concesiones sobre objetos que recibe el usuario. USER_TAB_GRANTS: concesiones en objetos para los que el usuario es el propietario,el que concedi el privilegio o al que se concedi el privilegio. USER_TABS_GRANTS_MADE: todas las concesiones hechas en objetos que son propiedad del usuario.Tema 9_ Administracin de Oracle 29

Gestin de seguridad Privilegios USER_TAB_GRANTS_RECD: concesiones en objetos en las que el usuario es aqul al que se ha concedido el privilegio (concesiones recibidas) ALL_TAB_GRANTS,ALL_TAB_GRANTS_MADE, ALL_TAB_GRANTS_RECD: son iguales que la anteriores vistas, slo que aparecen las concesiones de todos los usuarios. USER_COL_GRANTS: concesiones en columnas para las que el usuario es el propietario,el que concedi el privilegio o al que se le concedi el privilegio. USER_COL_GRANTS_MADE,USER_COL_GRAN TS_RECD: igual que las anterioers pero para columnas. ALL_COL_GRANTS,ALL_COL_GRANTS_MADE, ALL_COL_GRANTS_REC: iguales que las anteriores pero aparecen las concesiones de todos los usuarios de la BD. USER_COL_PRIVS: concesiones sobre columnas en las que el usuario es el propietario, asigna el privilegio o lo recibe. USER_COL_PRIVS_MADE: todas las concesiones sobre columnas de objetos que son propiedad del usuario. USER_COL_PRIVS_RECD: concesiones de columna recibidas por el usuario.Tema 9_ Administracin de Oracle 30

Gestin de seguridad Roles Un rol o funcin es un conjunto de privilegios que recibe un nombre comn para facilitar la tarea de asignacin de stos a los usuarios o a otros roles. Los privilegios de un rol pueden ser de sistema y a nivel de objeto. Creacin de un rol: CREATE ROLE nombrerol [IDENTIFIED BY contrasea] , donde IDENTIFIED BY contrasea, indica que el usuario que desee usar los privilegios del rol tiene que introducir la clave de acceso en la orden SET ROLE para activar el rol. Concesin de privilegios a los roles, los vistos anteriormente, y pueden ser a nivel de objeto o de sistema. GRANT privilegio TO rolTema 9_ Administracin de Oracle 31

Gestin de seguridad Roles Lmites en privilegios sobre roles: Un rol puede decidir el acceso de un usuario a un objeto, pero no puede permitir la creacin de objetos. Supresin de un rol: DROP ROLE nombrerol; Oracle, retira el rol concedido a todos los usuarios y roles a los que se le concedi. Para poder eliminar un rol es necesario ser administrador o tener el privilegio DROP ANY ROLE. Establecer un rol por defecto: ALTER USER nombreusuario DEFAULT {[ROLE nombre rol] |NONE}; Donde NONE hace que el usuario no tenga rol por defecto.

Tema 9_ Administracin de Oracle

32

Gestin de seguridad Roles Vistas con informacin de roles: USER_TAB_PRIVS:concesiones sobre objetos que son propiedad del usuario, concedidos o recibidos por ste. ROLE_SYS_PRIVS: privilegios del sistema asignados a roles. ROLE_TAB_PRIVS: privilegios sobre tablas aplicados a roles. ROLE_ROLE_PRIVS: roles asignados a otros roles. SESSION_ROLES: roles activos para el usuario. USER_ROLE_PRIVS: roles asignados al usuario. DBA_SYS_PRIVS: privilegios del sistema asignados a los usuarios o roles. DBA_ROLE_PRIVS:privilegios asignados a todos los usuarios y roles. DBA_ROLES:todos los roles.

Tema 9_ Administracin de Oracle

33

Gestin de seguridad Perfiles Un perfil es un conjunto de lmites a los recursos de la base de datos. Se puede crear un perfil que limite el tiempo de conexin a la BD; si se asigna ese perfil a un usuario y este rebasa el tiempo lmite, no podr utilizar la BD a menos que se realice de nuevo la conexin.

CREATE PROFILE nombreperfil LIMIT {SESSION_PER_USER |CPU_PER_SESSION|CPU_PER_CALL |CONNECT TIME|IDLE_TIME|LOGICAL_READS_PER_SESSION|L OGICAL_READS_PER_CALL|PRIVATE_SGA|COMPO SITE_LIMIT} {Entero [K|M] | UNLIMITED|DEFAULT} [{SESSION_PER_USER |CPU_PER_SESSION|CPU_PER_CALL |CONNECT TIME|IDLE_TIME|LOGICAL_READS_PER_SESSION|L OGICAL_READS_PER_CALL|PRIVATE_SGA|COMPO SITE_LIMIT} {Entero [K|M] | UNLIMITED|DEFAULT} ]Tema 9_ Administracin de Oracle 34

Por defecto, a los usuarios se les asigna el perfil DEFAULT, este perfil define recursos ilimitados. Para crear un nuevo perfil:

Los recursos a limitar son los siguientes: Funcin

Gestin de seguridad PerfilesNmero de sesiones mltiples concurrentes permitidas por nombre de usuario Limita el tiempo de conexin permitida por sesin antes de que el usuario sea desconectado (minutos) Limita el tiempo de inactividad permitido antes de que el usuario sea desconectado (minutos) Limita el tiempo mximo de CPU por sesin. Este valor se expresa en centsimas de segundo. Limita el tiempo mximo por CPU por llamada (de anlisis, ejecucin o bsqueda). En centsimas de segundo. Limita el nmero de bloque de datos ledos en una sesin35

Recurso SESSIONS_PER_USER

CONNECT_TIME

IDLE_TIME

CPU_PER_SESSION

CPU_PER_CALL

LOGICAL_READS_PER_ SESSION

Tema 9_ Administracin de Oracle

Los recursos a limitar son los siguientes: Funcin

Gestin de seguridad PerfilesLimita el nmero de bloques de datos ledos por llamada (de anlisis, ejecucin o bsqueda) Limita el nmero de bytes enteros de espacio privado en la SGA (til para sistemas que utilicen multi-threaded) Limita el coste total de recursos para una sesin en unidades de servicio basadas en una suma de los siguientes recursos: CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSI ON y PRIVATE_SGA

Recurso LOGICAL_READS_PER_ CALL PRIVATE_SGA

COMPOSITE_LIMIT

UNLIMITED, significa que no hay lmite sobre un recurso particular. DEFAULT coge el lmite del perfil DEFAULT.Tema 9_ Administracin de Oracle 36

Ejemplos:

Gestin de seguridad Perfiles

SQL> CREATE PROFILE PERFIL1 LIMIT SESSION_PER_USER 1 CONNECT_TIME 2; Creamos un perfil donde limitamos el nmero de conexiones concurrentes por usuario a una y dos minutos de tiempo de conexin permitido por sesin. SQL> CREATE USER PRUEBA IDENTIFIED BY PRUEBA DEFAULT TABLESPACE USERS QUOTA 100K ON USERS PROFILE PERFIL1; Se le concede al usuario el perfil PERFIL1. SQL>CONNECT SYSTEM/MANAGER (o cualquier cuenta de administrador) SQL> ALTER SYSTEM SET RESOURCE_LIMIT=TRUE Con esta orden el administrador activa la utilizacin de perfiles. Para desactivarlos sera poner la misma variable RESOURCE_LIMIT=FALSE. Borrado de perfiles: se utiliza la orden DROP PROFILE: DROP PROFILE nombreperfil [CASCADE]; ,donde CASCADE es necesario ponerlo, si en el sistema hay algn usuario con ese perfil asociado.

Tema 9_ Administracin de Oracle

37

Gestin de Tablespaces Una BD est formada por un conjunto de archivos de datos, Oracle utiliza un objeto denominado TABLESPACE o espacio de tablas, para agrupar esos archivos. Un TABLESPACE es una unidad lgica de almacenamiento de datos representado fsicamente por uno o ms archivos de datos. Es recomendable no mezclar datos de diferentes aplicaciones en el mismo tablespace. Al instalar Oracle se crean una serie de tablespaces por defecto:SYSTEM, USERS, TEMP, Creacin de TABLESPACES: CREATE TABLESPACE nombretablespace DATAFILE nombrearchivo [SIZE entero [K|M] [REUSE] [,nombrearchivo [SIZE entero [K|M] [REUSE]] [DEFAULT STORAGE ( INITIAL tamao NEXT tamao MINEXTENS tamao MAXEXTENS tamao PCTINCREASE valor)] [ONLINE|OFFLINE];Tema 9_ Administracin de Oracle 38

Gestin de Tablespaces Donde, DATAFILE, especifica el archivo o archivos de datos de que constar el tablespace. SIZE entero, especifica el tamao del tablespace, que puede venir dado en Kb o Mb. Si ponemos K se multiplica el entero por 1024 y si ponemos M, se multiplica por 1.048.576 REUSE, reutiliza el archivo si ya existe o lo crea si no existe. DEFAULT STORAGE, define el almacenamiento por omisin para todos los objetos que se creen en este espacio de tabla. Fija la cantidad de espacio si no se especifica en la sentencia CREATE TABLE. INITIAL, extensin inicial. Especifica el tamao en bytes de la primera extensin del objeto. El tamao se puede especificar en Kb o Mb. El valor mnimo es el tamao de 2 bloques de datos. El valor por defecto es 5 bloques de datos, es decir, 10 K (1 bloque son 2 K). NEXT, extensin siguiente. Especifica el tamao de la siguiente extensin que se va a asignar al objeto. Tambin se puede especificar en Kb o Mb. El valor por defecto es 5 bloques de datos (10 K). MINIEXTENTS, reserva extensiones adicionales ms all de la extensin inicial que se le da a la tabla por omisin.

Tema 9_ Administracin de Oracle

39

Gestin de Tablespaces Donde, MAXIEXTENTS, es el nmero total de extensiones, incluida la primera, que Oracle puede asignar al objeto. El valor depende del tamao del bloque de datos. Si el tamao del bloque es de 2 K, el valor es 121; si el tamao del bloque es de 4 K, el valor es 249,etc. PICTINCREASE, es un factor de crecimiento para la extensin. El valor por omisin es 50, lo que significa que cada extensin subsiguiente ser un 50% ms grande que la extensin anterior. El valor de la siguiente extensin es: NEXT=NEXT + (PCTINCREASE*NEXT)/100

ONLINE u OFFLINE. Con ONLINE, el tablespace est disponible despus de crearlo, es el valor por defecto, con OFFLINE impide su acceso.

Tema 9_ Administracin de Oracle

40

Gestin de Tablespaces Ejemplo: SQL> CREATE TABLESPACE TRABAJO DATAFILE TABAJ1.ORA SIZE 10M, TABJ2.ORA SIZE 5M DEFAULT STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 25); Se crea una tablespace llamado TRABAJO. El tamao inicial para el objeto que se cree en este tablespace (por ejemplo, una tabla) es de 10K, el tamao de la siguiente extensin del objeto ser de 10 k tambin; y cada extensin subsiguiente ser un 25 % ms grande que el anterior. Y por ltimo, asignamos dos archivos (fsicos) a este tablespace, llamados TRABJ1.ORA y TRABJ2.ORA de 10 y 5 Megas respectivamente.

Tema 9_ Administracin de Oracle

41

Gestin de Tablespaces Vistas que tienen que ver con los tablespaces: DBA_DATA_FILES: se utiliza para ver los archivos utilizados en los tablespaces. Para consultar esta vista es necesario conectarse como administrador. USER_FREE_SPACE: Muestra las extensiones libres en tablespaces a las que puede acceder el usuario. No tienen porqu estar en bloques consecutivos. Esta vista tiene los siguientes campos: TABLESPACE_NAME FILE_ID: n identificativo del archivo BLOCK_ID: identificacin del primer bloque libre. BYTES: n de bytes libres. BLOCKS: n de bloques libres RELATIVE_FNO: n relativo del fichero en la primera extensin del bloque.

DBA_FREE_SPACE: se trata de extensiones libres en todos los tablespaces. Slo pueden consultar esta vista los administradores. DBA_TABLESPACES: Es la descripcin de todos los tablespaces. Slo administradores. DBA_TS_QUOTAS: Describe los bytes utilizados por los usuarios en cada tablespace. Slo administradores. MAX_BYTES: n mximo de bytes que tiene el usuario asignados. BLOCKS: n de bloques usados BYTES: n de bytes usados por el usuario MAX_BLOCKS: mximo nmero de bloques.

Tema 9_ Administracin de Oracle

42

Gestin de Tablespaces Modificacin de TABLESPACES: Es posible modificar los tablespaces despus de crearlos, pudiendo: Aadir nuevos archivos a un tablespace existente Modificar las clusulas de almacenamiento para los objetos que se almacenen en el tablespace Activarlo o Desactivarlo

La modificacin se lleva a cabo mediante ALTER TABLESPACE: ALTER TABLESPACE nombretablespace {[ADD DATAFILE nombrearchivo [SIZE entero [K|M] [REUSE] [AUTOEXTEND ON |OFF] [,nombrearchivo [SIZE entero [K|M] [REUSE] [AUTOEXTEND ON|OFF]]} [RENAME DATAFILE archivo [,archivo] TO archivo [,archivo]] [DEFAULT STORAGE clausulasalmacenamiento] [ONLINE|OFFLINE]}; Donde, Nombretablespace, es el nombre del tablespace que se quiere modificar.Tema 9_ Administracin de Oracle 43

Gestin de Tablespaces ADD_DATAFILE, aade al tablespace uno o varios archivos. AUTOEXTEND activa o desactiva el crecimiento automtico de los archivos de datos del tablespace. AUTOEXTEND OFF, desactiva el crecimiento automtico. El formato AUTOEXTEND ON es: AUTOEXTEND ON NEXT entero {K|M} MAXSIZE {UNLIMITED|entero {K|M}} NEXT entero, es el incremento de espacio en disco expresado en Kb o Mb que se reservar automticamente para el archivo. MAXSIZE es el mximo espacio en disco reservado para la extensin automtica del archivo. UNLIMITED, significa que no hay lmite del espacio en disco reservado.

RENAME DATAFILE, cambia el nombre de un archivo existente del tablespace. Este cambio se tiene que hacer desde el sistema operativo, y despus, ejecutar la orden SQL. El tablespace debe estar desactivado (OFFLINE) mientras se produce el cambio. DEFAULT STORAGE especifica los nuevos parmetros de almacenamiento para todos los objetos que se creen a partir de ahora en este tablespace. ONLINE pone el espacio de tablas en lnea (activado) OFFLINE pone el espacio de tablas fuera de linea (desactivado).

Tema 9_ Administracin de Oracle

44

Gestin de Tablespaces Ejemplo: SQL> ALTER TABLESPACE TRABAJO OFFLINE; Desactivamos el tablespace TRABAJO SQL> ALTER TABLESAPCE TRABAJO ADD DATAFILE TRABAJ3.ORA SIZE 6 M; Se agrega el archivo llamado TRABAJ3.ORA de 6 Megas al tablespace TRABAJO. SQL>CREATE TABLESPACE PEQUE DATAFILE PEQUEO.ORA SIZE 100K; SQL>CREATE TABLE LETRAS (N VARCHAR2(50)) TABLESPACE PEQUE; SQL>ALTER TABLESPACE PEQUE DATAFILE MAYOR.ORA SIZE 100 K AUTOEXTEND ON NEXT 200 K MAXSIZE 1M; Creamos un tablespace muy pequeo de 100 Kb llamado PEQUE Creamos una tabla en ese tablespace. Aadimos al tablespace PEQUE, un archivo de 100 K llamado Mayor que se va extendiendo de forma automtica hasta 200K cuando se llena. Como mximo el espacio utilizado en disco para esta archivo es de 1 Mega.

Tema 9_ Administracin de Oracle

45

Gestin de Tablespaces Borrado de tablespaces Para borrar un tablespace que ya no utilizamos se emplea la orden DROP TABLESPACE: DROP TABLESPACE nombretablespace [INCLUDING CONTENTS] Donde, Nombretablespace,es el nombre del tablespace que se va suprimir. La opcin INCLUDING CONTENTS, permite borrar un tablespace que tenga datos. Sin esta opcin nicamente podremos borrar un tablespace vaco. Se recomienda poner el tablespace OFFLINE antes de borrarlo para asegurarnos que no haya sentencias SQL que estn accediendo a datos del tablespace , en cuyo caso no nos dejara borrarlo. Cuando se borra un tablespace, los archivos asociados no se borran del sistema operativo, por lo que tendremos que borrarlos de forma manual.

Tema 9_ Administracin de Oracle

46

Gestin de Tablespaces Parmetros de almacenamiento: La orden CREATE TABLE toma los parmetros de almacenamiento indicados en la clusula DEFAULT STORAGE del tablespace. No obstante, en la orden CREATE TABLE permite especificar parmetros de almacenamiento para la tabla cuando queramos asignar parmetros distintos a los que asigna el tablespace. La sintaxis completa sera: CREATE TABLE nombretabla( col1 tipo [restricciones de columna], col2 tipo [NOT NULL], [restricciones de tabla]) STORAGE( INITIAL tamao NEXT tamao MINEXTENTS tamao MAXEXTENTS tamao PCTINCREASE valor) [TABLESPACE noombretablespace];Tema 9_ Administracin de Oracle 47

Otros objetos Secuencias Objeto de base de datos que sirve para generar enteros nicos; es muy til para generar automticamente valores para claves primarias.

Enlaces a bases de datos Objeto que permite acceder a objetos de una base de datos remota. Se usa parar realizar consultas en tablas de la base de datos remota.

ndices Es un objeto de base de datos que se asocia a una tabla y al que se asocia una o varias columnas de una tabla. Permite acelerar el tiempo de respuesta en las consultas.

Clusters Es un objeto de base de datos que almacena varias tablas que tienen una o ms columnas en comn en una misma rea del disco; con esto se consigue que las operaciones de combinaciones de tablas sean ms rpidas.Tema 9_ Administracin de Oracle 48

Secuencias Para crear una secuencia en el propio esquema, hay que tener el privilegio CREATE SEQUENCE. Para crear una secuencia en cualquier esquema es necesario tener el privilegio CREATE ANY SEQUENCE. Sintaxis: CREATE SEQUENCE nombresecuencia [INCREMENT BY entero] [START WITH entero] [MAXVALUE entero | NOMAXVALUE] [MINVALUE entero |NOMINVALUE] [CYCLE|NOCYCLE] [ORDER |NOORDER] [CACHE entero |NOCACHE];

Tema 9_ Administracin de Oracle

49

Secuencias,donde INCREMENT BY entero, especifica el intervalo de crecimiento de la secuencia, se asume el valor 1. Si es negativo, produce un decremento en la secuencia. START WITH entero, es el nmero con el que comienza la secuencia. MAXVALUE entero, es el nmero ms alto que generar la secuencia. Deber ser mayor o igual al nmero de comienzo (START WITH) y mayor que el especificado en MINVALUE. NOMAXVALUE, indica que el valor mximo de la secuencia ser 10 27 y en una secuencia descendente 1. MINVALUE entero, el nmero ms bajo que generar la secuencia. Deber ser menor o igual al indicado por START WITH y menor que el indicado por MAXVALUE. NOMINVALUE, indica que el valor mnimo para una secuencia ascendente ser 1 y -10 26 para una secuencia descendente. CYCLE|NOCYCLE, CYCLE, reanuda la secuencia cuando esta llega al mximo o al mnimo valor; NONCYCLE no la reanuda. ORDER|NOORDER, ORDER garantiza que los nmeros de secuencia se generan en el orden requerido y NOORDER no lo garantiza. Si se omiten ambas, se asume NOORDER. CACHE entero |NOCACHE, CACHE permite guardar en memoria un conjunto previamente asignado de nmeros de secuencia.Tema 9_ Administracin de Oracle 50

Secuencias Pseudocolumnas CURRVAL y NEXTVAL Una vez creada la secuencia, accedemos a ella mediante la pseudocolumna CURRVAL, que devuelve el valor actual de la secuencia y NEXTVAL, que devuelve el siguiente valor e incrementa la secuencia. Para utilizar estas pseudocolumnas tenemos que poner: Nombresecuencia. Pseudocolumna. Ej: nombresecuencia.currval

Para eliminar una secuencia: DROP SEQUENCE nombresecuencia;

Tema 9_ Administracin de Oracle

51

Secuencias Ejemplo:SQL>CREATE TABLE FRUTAS ( CODIGO NUMBER(2) NOT NULL PRIMARY KEY, NOMBRE VARCHAR2(15) ); SQL>CREATE SEQUENCE codigos START WITH 1 INCREMENT BY 1 MAXVALUE 99; SQL>INSERT INTO FRUTAS VALUE (CODIGOS.NEXTVAL, MANZANAS); SQL>INSERT INTO FRUTAS VALUE (CODIGOS.NEXTVAL, NARANJAS); SQL>INSERT INTO FRUTAS VALUE (CODIGOS.NEXTVAL, PERAS); SQL>SELECT * FROM FRUTAS;

CODIGO 1 2 3

NOMBRE MANZANAS NARANJAS PERASTema 9_ Administracin de Oracle 52

NDICES La estructura de un ndice es:

ndice Columna/s .

ROWID .

La utilidad de los ndices es acelerar las bsquedas. Si una columna est indexada la bsqueda de un datos, ser una bsqueda binaria muyo mas eficiente que una bsqueda secuencial. Se debe indexar cuando se disponga de una gran cantidad de filas en una tabla, y adems, cada fila se identifique por una o varias columnas.NO se deben indexar tablas pequeas No se deben indexar columnas que son modificadas a menudo y que poseen pocos valores diferentes. Tampoco es recomendable indexar tablas muy cambiantes, es decir, en las que se aplique con mucha frecuencia las sentencias UPDATE, DELETE o INSERT.Tema 9_ Administracin de Oracle

53

NDICES Sintaxis: CREATE INDEX nombreindice ON nombretabla (col1[ASC|DESC] [,col2[ASC1DESC]) [STORAGE clausulas_almacenamiento] [TABLESPACE nombretablespace] [otras clusulas] Donde, Nombrerabla, es el nombre de la tabla que se va a indexar. Colum, es la columna o columnas por las que se indexa. ASC|DESC, no tienen efecto, se definen por compatibilidad con DB2.

NOTA: cuando creamos una clave primaria (PRIMARY KEY) o una restriccin de unicidad (UNIQUE), se crea un ndice con el nombre de la restriccin. Para borrar un ndice: DROP INDEX nombreindice;

Tema 9_ Administracin de Oracle

54

NDICES Ejemplo: Para crear un ndice: SQL>CREATE INDEX indicemple ON EMPLE (EMP_NO); Para ver los ndices creados contamos con las siguientes vistas: USER_INDEXES DBA_INDEXES

SQL> SELECT INDEX_NAME,TABLE_NAME FROM USER_INDEXES WHERE TABLE_NAME=EMPLE; Para eliminar un ndice: SQL>DROP INDEX indicemple;

Tema 9_ Administracin de Oracle

55

CLUSTERSUn clster es un objeto que almacena varias tablas que tienen una o ms columnas en comn en una misma rea del disco. Las filas de las tablas con los mismos valores en las columnas de combinacin se almacenan fsicamente juntas, as las consultas sern ms rpidas. La tablas se aaden a un clster con la orden CREATE TABLE y la clusula CLUSTER. Sintaxis: CREATE TABLE nombretabla (definicin de columnas) CLUSTER nombrecluster (columna [,columna]);

Tema 9_ Administracin de Oracle

56

CLUSTERS Para crear un cluster: CREATE CLUSTER nombrecluster (columna tipo_dato [,columna tipo_dato]) [SIZE entero] [STORAGE (clusulas de almacenamiento)] [TABLESPACE nombretablespace]; Donde, SIZE entero, especifica el tamao en bytes para un bloque lgico. El nombre de columna no tiene porqu ser igual al de las tablas.

Para eliminar un cluster: DROP CLUSTER nombrecluster [INCLUDING TABLES [CASCADE CONSTRAINTS]]; Si el cluster contiene tablas, es necesario borrarlo con INCLUDING TABLES. La opcin CASCADE CONSTRAINTS, permite borrar las reglas de integridad referencial de tablas que no estn en el clster, pero hacen referencia a claves de las tablas agrupadas.Tema 9_ Administracin de Oracle 57

CLUSTERS Ejemplo: Creamos un cluster: SQL>CREATE CLUSTER EMPLEYDEPART (numero_dpto NUMBER(2)); Agregamos las tablas EMPLE y DEPART al cluster. La columna que tienen en comn es DEPT_NO: SQL> CREATE TABLE DEPART( DEPT_NO NUMBER(2) NOT NULL, DNOMBRE VARCHAR2(14), LOC VARCHAR2(14) ) CLUSTER EMPLEYDEPART (DEPT_NO); SQL>CREATE TABLE EMPLE( EMP_NO NUMBER(4) NOT NULL, APELLIDO VARCHAR2(10), COMISION NUMBER(10), DEPT_NO NUMBER(2) NOT NULL) CLUSTER EMPLEYDEPART (DEPT_NO);Tema 9_ Administracin de Oracle 58

CLUSTERS Cuando se agregan las tablas a un cluster, las clusulas de almacenamiento TABLESAPCE y STORAGE no se pueden emplear. Para poder utilizar las tablas agrupadas, es necesario crear un ndice para el cluster antes. SQL> CREATE INDEX ind_empleydepart ON CLUSTER EMPLEYDEPART; Y ahora ya se puede operar con las tablas.

Tema 9_ Administracin de Oracle

59