Professional Documents
Culture Documents
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
TRANSACCIN.
Unidad lgica de trabajo que contiene una o ms sentencias SQL; se trata de una unidad indivisible o atmica. Los efectos de las sentencias de una transaccin pueden ser todos validados (aplicados a la base de datos) o retrocedidos. Comienza en la primera sentencia SQL ejecutable. Termina cuando es validada o retrocedida, de forma explicita, mediante las sentencias COMMIT o ROLLBACK, o implcitamente, en el caso de sentencias DDL.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
Ambas formas no pueden simultanearse. La forma de gestin, manual o automtica, se determina en el arranque de la base de datos mediante el parmetro de inicializacin UNDO_MANAGEMENT.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
10
UNDO_MANAGEMENT = AUTO
Al arrancar se busca un espacio de almacenamiento (tablespace) de undo (existente desde la creacin de la bd o creado posteriormente). Si no existe, se usa el segmento de rollback SYSTEM, y se genera un mensaje de error en el fichero de alertas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
11
set undo_retention= <valor>) que indica en segundos -por defecto 900-, cuanto tiempo ha de permanecer la informacion de undo disponible -importante en largas transacciones-. Si se necesita espacio para las transacciones activas y no hay existe suficiente , se reutiliza el existente y puede provocar el fallo de consultas muy largas. Parmetro dinmico (alter system ...) que indica el espacio de almacenamiento de undo a usar en el arranque. Si se indica en modo manual, provoca error y falla el arranque.
ESPACIO DE UNDO
- UNDO_TABLESPACE.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
12
system ...) que permite suprimir los mensajes de erro generados cuando sentencias SQL propias de la gestin en modo manual se usan en modo automtico.Por ejemplo, si se usa SET TRANSACTION USE ROLLBACK SEGMENT se generar el error ORA-30019.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
13
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
14
15
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
16
17
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
18
Slo es posible borrar si el espacio de undo no est en uso. Al borrar se elimina todo su contenido.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
19
Se producir error en caso de que el nuevo espacio de almacenamiento no exista, no sea de undo o se este usando por otra instancia. La bd est en lnea mientras se realiza la operacin; y pueden ejecutarse transacciones, al terminar todas aquellas comenzadas despues de la sentencia se asignan al nuevo espacio de undo.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
20
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
21
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
22
Espacio = UR * (Tasa_transaccion * tamao_bloque) Donde UR es el valor de UNDO_RETENTION, en segundos, y la tasa de transaccion el numero de bloques undo por segundo (columna UNDOBLKS de V$UNDOSTAT).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
23
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
24
- TRANSACTIONS. Indica el nmero mximo de transacciones concurrentes. Valores mayores incrementan el tamao de la SGA y pueden incrementar el numero de segmentos reservados. - TRANSACTIONS_PER_ROLLBACK_SEGMENT. Indica el nmero de transacciones concurrentes que cada segmento se espera que maneje.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
25
Segmento: Un conjunto de extensiones que contiene todos los datos para una estructura lgica de almacenamiento especifica en un tablespace. Tipos de segmentos:
- Segmentos de datos. - Segmentos de ndices. - Segmentos temporales. - Segmentos de rollback.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
26
SEGMENTOS DE ROLLBACK.
Toda base de datos posee uno o ms segmentos de rollback. Contiene/n los valores antiguos de datos modificados por cada transaccin. La informacin se dispone en mltiples entradas de rollback que contienen informacin de bloque y el dato tal como exista antes de la operacin involucrada en la transaccin. Estas entradas modifican los bloques del segmento de rollback y Oracle almacena todos los cambios hechos en la bitcora (redo log).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
27
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
28
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
29
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
30
31
32
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
33
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
34
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
35
Se crea al mismo tiempo que la base de datos. Reside en el tablespace SYSTEM y usa sus parmetros de almacenamiento por defecto. No puede borrarse. Si existen diversos segmentos de rollback, se emplea para transacciones especiales del sistema, y las transacciones de usuario son distribuidas entre otros segmentos de rollback. Se recomienda crear segmentos adicionales al SYSTEM tras instalar la base de datos. Si hay excesivas transacciones para el resto de segmentos, el segmento SYSTEM tambin es usado.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
36
37
RECOMENDACIONES.
Se recomienda crear un espacio de almacenamiento exclusivo que albergue a los segmentos de rollback. Ventajas:
- Puede ser mantenido en lnea de forma permanente. - No impide que otros espacios de almacenamiento sean puestos fuera de lnea.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
38
CREACIN.
Debe poseerse el privilegio create rollback segment. El espacio de almacenamiento destino debe estar en lnea. Sintaxis:
CREATE <PUBLIC> ROLLBACK SEGMENT <NOMBRE> TABLESPACE <NOMBRE_TBSP> STORAGE (INITIAL <XX> NEXT <XX> MINEXTENTS <XX> MAXEXTENTS <XX> OPTIMAL <XX> );
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
39
CREACIN. RECOMENDACIONES.
INITIAL y NEXT deben ser del mismo valor: Se consiguen as extensiones de tamao uniforme. Debe crearse un adecuado nmero de extensiones iniciales para minimizar la necesidad de extensin. No debe fijarse MAXEXTENTS=UNLIMITED. Se evita as que se extienda de forma ilimitada debido a un error de programacin.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
40
41
42
Lo ideal es crear un nmero de segmentos de tamao apropiado para cada tipo de transaccin y asignar explicitamente las transaccion atpicas a aquellos que corresponda (por ejemplo, transacciones largas).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 ESPACIO DE UNDO
43
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
44
45
MODIFICACIN DE PARMETROS.
Sintaxis:
ALTER ROLLBACK SEGMENT <NOMBRE> STORAGE (INITIAL <XX> NEXT <XX> MINEXTENTS <XX> MAXEXTENTS <XX> OPTIMAL <XX> );
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
46
DECREMENTO.
Manualmente puede reducirse el tamao de un segmento derollback. El tamao final depende del espacio libre en el segmento y de cuantas transacciones activas usan el segmento. Si no se especifica un tamao concreto se intenta ajustar al del parmetro de creacin OPTIMAL. Si no se ha determinado, al del parmetro MINEXTENTS. Sintaxis: ALTER ROLLBACK SEGMENT <NOMBRE> SHRINK TO <XX> K/M; ALTER ROLLBACK SEGMENT <NOMBRE> SHRINK;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
47
BORRADO.
Debe poseerse el privilegio drop rollback segment. El segmento debe estar fuera de lnea. Sintaxis:
DROP ROLLBACK SEGMENT <NOMBRE>;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
48
Un ejemplo de uso es asignar transacciones que insertan, actualizan o borran grandes cantidades de informacin a segmentos lo bastante grandes como para contener la informacin de rollback de la transaccin.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
ESPACIO DE UNDO
49
VISTAS.
V$ROLLNAME. Nombres de los segmentos de rollback en
lnea.
V$ROLLSTAT. Estadsticas sobre segmentos de rollback. V$TRANSACTION. Transacciones activas en el sistema. DBA_ROLLBACK_SEGS.
rollback de la bd. Informacin sobre segmentos de
50
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
51
52
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
53
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
54
USUARIOS Y SU AUTENTIFICACIN.
Cada base de datos tiene una lista valida de usuarios. Para acceder a la misma un usuario debe ejecutar un aplicacin y conectarse a la instancia usando un nombre valido previamente definido. Las formas ms comunes de autentificar a un usuario son:
- Por base de datos. - Por sistema operativo (autentificacin externa).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
55
USUARIOS Y SU AUTENTIFICACIN.
En la autentificacin por base de datos la administracin de la cuenta de usuario, contrasea, que se guarda encriptada, y la autentificacin es realizada por Oracle. En la autentificacin externa la cuenta es mantenida por Oracle pero la administracin de la contrasea y la autentificacin de usuario es realizada externamente. El ejemplo ms comn es la autentificacin por sistema operativo; los tpicos usuarios ops$ o identified externally. El prefijo ops$ no es obligatorio y viene determinado por el parmetro de inicializacin, fichero init.ora, OS_AUTHENT_PREFIX (define el prefijo a aadir al comienzo de toda cuenta de usuario identificado por S.O. Y su valor por defecto es OPS$).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
56
CREACIN DE USUARIOS.
Necesario el privilegio de sistema CREATE USER. Normalmente slo lo tiene el usuario administrador. El creador del usuario puede indicar cuota sobre espacios de almacenamiento aunque l no las posea. No es posible la conexin del usuario creado hasta que posea el privilegio de sistema CREATE SESSION.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
57
CREACIN DE USUARIOS.
Sintaxis:
CREATE USER <usuario> IDENTIFIED BY <contrasea>/EXTERNALLY DEFAULT TABLESPACE <espacio> TEMPORARY TABLESPACE <espacio> QUOTA <xx>K/UNLIMITED ON <espacio> PROFILE <perfil> PASSWORD EXPIRE ACCOUNT LOCK/UNLOCK;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
58
CREACIN DE USUARIOS.
Nombre de usuario. Debe ser nico respecto a otros nombres de usuario y roles. Cada usuario tiene asociado un esquema y dentro del mismo cada objeto debe tener un nico nombre. Identificacin. Un usuario autentificado de forma externa se ha de crear con la clusula IDENTIFIED EXTERNALLY.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
59
CREACIN DE USUARIOS.
DEFAULT TABLESPACE. Indica aquel espacio de almacenamiento donde se crearan los objetos del esquema del usuario cuando al hacerlo no se indica ninguno en particular. Si no se indica es el espacio SYSTEM (Error!). TEMPORARY TABLESPACE. Indica el espacio de almacenamiento donde se almacenan los segmentos temporales requeridos por el usuario No debe indicarse cuota y el espacio temporal por defecto es el SYSTEM (Error!).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
60
CREACIN DE USUARIOS.
QUOTA. Indica la cantidad de espacio reservada en un determinado espacio de almacenamiento para el usuario. Por defecto un usuario no tiene cuota en ningn espacio de almacenamiento. Indicando UNLIMITED, es ilimitado el espacio a usar. Puede revocarse el acceso a un espacio de almacenamiento asignando cuota cero sobre el mismo. Los objetos ya creados permanecen pero no pueden crecer ni crearse ninguno ms.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
61
CREACIN DE USUARIOS.
PROFILE. Indica el perfil a asignar al usuario. PASSWORD EXPIRE. Fuerza al usuario a cambiar la clave antes de conectarse a la base de datos. ACCOUNT. ACCOUNT LOCK, bloquea la cuenta de usuario y deshabilita el acceso. ACCOUNT UNLOCK, desbloquea la cuenta de usuario y permite al acceso.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
62
MODIFICACIN DE USUARIOS.
Los usuarios pueden cambiar sus propias claves, sin embargo para cambiar cualquier otro parmetro es necesario el privilegio ALTER USER. Sintaxis:
ALTER USER <usuario> IDENTIFIED BY <contrasea>/EXTERNALLY DEFAULT TABLESPACE <espacio> TEMPORARY TABLESPACE <espacio> QUOTA <xx>K/UNLIMITED ON <espacio> DEFALT ROLE <role>/ALL/ALL EXCEPT <role>/NONE PROFILE <perfil> PASSWORD EXPIRE ACCOUNT LOCK/UNLOCK;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
63
MODIFICACIN DE USUARIOS.
DEFAULT ROLE. Indica los roles otorgados por defecto al usuario en la conexin. Se refiere a roles otorgados de forma directa al usuario. Oracle activa los roles sin necesidad de especificar sus contraseas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
64
BORRADO DE USUARIOS.
Al borrar un usuario el esquema asociado, con todos sus objeto, desaparecen. Una posible solucin para que permanezca el usuario y los objetos pero impedir la conexin es revocar el privilegio CREATE SESSION. No es posible eliminar un usuario que permanezca conectado a la base de datos. Debe esperarse a que concluya o forzar su terminacin (ALTER SYSTEM KILL SESSION). Es necesario tener el privilegio de sistemas DROP USER.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
65
BORRADO DE USUARIOS.
Es conveniente estudiar las implicaciones que sobre otros esquemas tiene el borrado del usuario y de su esquema. Sintaxis:
DROP USER <usuario>; DROP USER <usuario> CASCADE;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
66
PERFILES.
Est constituido por un conjunto de lmites de recursos de la base de datos. Diferentes perfiles pueden ser asignados a diferentes usuarios. Habilitar o deshabilitar la limitacin mediante perfiles puede hacerse: de recursos
- Mediante el parmetro de inicializacin RESOURCE_LIMIT (init.ora), asignando valores TRUE o FALSE (por defecto). - Mediante la sentencia ALTER RESOURCE_LIMIT = TRUE/FALSE. SYSTEM SET
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
67
CREACIN DE PERFILES.
Es necesario el privilegio de sistema CREATE PROFILE. Existe un perfil por defecto o DEFAULT. Inicialmente todos los recursos designados en el estn con valor UNLIMITED, por lo que es conveniente modificarlo. Aquellos recursos para los que en el perfil asignado no se ha definido un valor, toman el valor designado en el perfil por defecto. Sintaxis:
CREATE PROFILE <perfil> LIMIT <parmetros> <valor>/UNLIMITED/DEFAULT;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
68
CREACIN DE PERFILES.
Parmetros de recursos:
SESSIONS_PER_USER. concurrentes. CPU_PER_SESSION. (centsimas de segundo). Numero de sesiones
Tiempo
de
UCP
por
sesin
CPU_PER_CALL. Tiempo de UCP para una llamada (parse, execute, o fetch) en centsimas de segundo. CONNECT_TIME. Tiempo total para una sesin(minutos). IDLE_TIME. (minutos). Tiempo de inactividad en una sesin
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
69
CREACIN DE PERFILES.
Parmetros de recursos:
LOGICAL_READS_PER_SESSION. Numero de bloques de datos ledos en una sesin (memoria o disco). LOGICAL_READS_PER_CALL. Numero de bloques de datos para una llamada de una SQL (parse, execute, o fetch). PRIVATE_SGA. Cantidad de espacio, en bytes, para uso privado reservado en la shared pool de la SGA (se emplea K o M para indicar kilobytes o megabytes). Solo en Shared Server. COMPOSITE_LIMIT. Coste total en recursos por sesin expresado en unidades de servicio (CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, y PRIVATE_SGA).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
70
CREACIN DE PERFILES.
Parmetros de contrasea:
FAILED_LOGIN_ATTEMPTS. Numero de intentos fallidos de conexin antes del bloqueo. PASSWORD_LIFE_TIME. Numero de das en que la clave es valida, esta expira si no se cambia en este periodo. PASSWORD_REUSE_TIME . Numero de das en los cuales la contrasea no puede usarse. PASSWORD_REUSE_MAX . Numero de cambios de clave necesarios antes de poder reusar la clave actual.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
71
CREACIN DE PERFILES.
Parmetros de contrasea:
PASSWORD_LOCK_TIME. Numero de das que la cuenta estar bloqueada despus de un cierto numero de fallos de conexin. PASSWORD_GRACE_TIME. Periodo de gracia donde se permite la conexin pero se notifica la necesidad de cambiarla.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
72
CREACIN DE PERFILES.
Valor UNLIMITED. En el caso de parmetros de recursos indica que puede usarse una cantidad ilimitada del mismo, en el caso de parmetros de contrasea que no ha sido fijado limite. Valor DEFAULT. Si se indica DEFAULT o se omite en el perfil algn parmetro, al ser asignado a un usuario toma para dicho parmetro el valor indicado en el perfil DEFAULT.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
73
MODIFICACIN DE PERFILES.
Es necesario poseer el privilegio de sistema ALTER PROFILE. Los valores modificados no afectan a las sesiones en curso. Sintaxis:
ALTER PROFILE <perfil> LIMIT <parmetros> <valor>/UNLIMITED/DEFAULT;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
74
ASIGNACIN DE PERFILES.
Los perfiles no pueden asignarse a roles ni a otros perfiles, solo a usuarios. Se puede realizar durante la creacin del usuario (CREATE USER) o posteriormente (ALTER USER). Un usuario slo puede tener un perfil asignado a la vez. Las asignaciones de perfiles no afectan a las sesiones activas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
75
BORRADO DE PERFILES.
Debe poseerse el privilegio de sistema DROP PROFILE. Para eliminar un perfil asignado a un usuario debe usarse la opcin CASCADE. Si se borra un perfil asociado a un usuario, a este se le asigna de forma automtica el perfil DEFAULT. El borrado de un perfil no afecta a las sesiones en curso. EL perfil DEFAULT no puede borrarse.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
76
BORRADO DE PERFILES.
Sintaxis:
DROP PROFILE <perfil>; DROP PROFILE <perfil> CASCADE;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
77
PRIVILEGIOS.
Derecho a ejecutar un tipo particular de sentencia SQL o a acceder a un objeto de otro usuario. Se distinguen dos tipos:
- De sistema: Permite realizar determinadas acciones en la base de datos (Por ejemplo, crear espacios de almacenamiento, crear usuarios, ). - Sobre Objetos: Permite a un usuario acceder y manipular o ejecutar objetos concretos (tablas, vistas, secuencias, procedimientos, funciones o paquetes).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
78
PRIVILEGIOS DE SISTEMA.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
79
PRIVILEGIOS DE SISTEMA.
CREATE DATABASE LINK CREATE PUBLIC DATABASE LINK DROP PUBLIC DATABASE LINK CREATE PROFILE ALTER PROFILE DROP PROFILE CREATE ROLE ALTER ANY ROLE DROP ANY ROLE CREATE ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT DROP ROLLBACK SEGMENT
DATABASE LINKS
PROFILES
ROLES
ROLLBACK SEGMENTS
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
80
PRIVILEGIOS DE SISTEMA.
CREATE ANY TABLE / CREATE ANY INDEX ALTER ANY TABLE / ALTER ANY INDEX DELETE ANY TABLE DROP ANY TABLE / DROP ANY INDEX INSERT ANY TABLE / SELECT ANY TABLE UPDATE ANY TABLE CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE CREATE USER ALTER USER DROP USER
GESTIN DE USUARIOS Y RECURSOS
TABLAS / INDICES
TABLESPACE
USER
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
81
PRIVILEGIOS DE SISTEMA.
La clusula ANY en cualquier privilegio indica que los usuarios a los que se les conceda tienen dicho privilegio en cualquier esquema. Notas:
- No existe el privilegio CREATE INDEX. - CREATE TABLE incluye las sentencias CREATE INDEX y ANALYZE. - Privilegios como CREATE TABLE o CREATE PROCEDURE incluyen el borrado de dichos objetos. - UNLIMITED TABLESPACE no puede otorgarse a un rol.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
82
TO
La clusula PUBLIC otorga el privilegio a todos los usuarios (Peligro!). La clusula ADMIN OPTION permite a aquel a quien se le concede el privilegio poder otorgarlo (Peligro!).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
83
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
84
Cualquier usuario con la opcin ADMIN OPTION sobre un privilegio puede revocarlo. Quien lo hace no tiene porque ser el usuario que originalmente lo otorgo. Al retirar ciertos privilegios determinados objetos pueden quedar inconsistentes (procedimientos o vistas consultadas merced al privilegio SELECT ANY TABLE). En el caso de ADMIN OPTION no hay un efecto en cascada cuando se retira un privilegio.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
85
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
86
objeto (Peligro!).
Con PUBLIC otorga el privilegio a todos los usuarios (Peligro!). La clusula GRANT OPTION permite a aquel a quien se le concede el privilegio poder otorgarlo (Peligro!).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
87
CASCADE CONSTRAINTS elimina cualquier clusula de integridad referencial que aquel a quien se retiran los permisos haya definido usando REFERENCES o ALL PRIVILEGES. Quien otorgo privilegios solo puede revocarlos a aquellos usuarios a quienes se los han concedido. En el caso de GRANT OPTION hay un efecto en cascada cuando se retira un privilegio.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
88
ROLES.
Es un grupo de privilegios, de sistema o sobre objetos, a los que se les da un nombre y pueden ser asignados a otros usuarios y roles. Caractersticas:
- Pueden otorgarse a cualquier usuario o rol, pero no a si mismo y tampoco de forma circular. - Pueden habilitarse o deshabilitarse. - Pueden tener contrasea. - Su nombre es nico. - No pertenecen a ningn esquema.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
89
ROLES. BENEFICIOS.
Simplifican el manejo de privilegios. Los permisos pueden asignarse a un rol y este a los diferentes usuarios. Manejo de privilegios dinmico. Si se modifican los privilegios asociados al rol, todos los usuarios que lo posean los adquieren de forma inmediata. Disponibilidad de privilegios selectiva. Roles pueden ser activados o desactivados temporalmente. Mejora de la productividad. El uso de roles disminuye el numero de grants almacenados en el diccionario de datos. Si se desactivan roles, hay menos privilegios que verificar durante la ejecucin de una sentencia.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
90
ROLES PREDEFINIDOS.
Oracle proporciona roles predefinidos como ayuda a la administracin de base de datos. Entre otros:
CONNECT. Incluye los privilegios ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE y CREATE VIEW. RESOURCE. Incluye CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER y CREATE TYPE. DBA. Todo privilegio de sistema WITH ADMIN OPTION. exportaciones EXP_FULL_DATABASE. Privilegios para completas e incrementales de la base de datos.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
91
ROLES PREDEFINIDOS.
IMP_FULL_DATABASE. Idem para importaciones completas. DELETE_CATALOG_ROLE. Privilegio de borrado en la tabla de auditora de sistema (AUD$). EXECUTE_CATALOG_ROLE. Privilegio de ejecucin sobre objetos en el diccionario de datos. SELECT_CATALOG_ROLE. Privilegio de consulta sobre objetos del diccionario de datos.
Los roles CONNECT, RESOURCE y DBA se mantienen por compatibilidad con versiones anteriores de Oracle. No se asegura que sigan existiendo en un futuro.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
92
CREACIN DE ROLES.
Debe poseerse el privilegio CREATE ROLE. El nombre debe ser diferente a cualquier nombre de rol o usuario existente. Sintaxis:
CREATE ROLE <rol> IDENTIFIED BY <contrasea>; CREATE ROLE <rol> NOT IDENTIFIED/<>;
La clusula IDENTIFIED BY indica como debe ser autorizado antes de usarse por un usuario al que se la ha otorgado (innecesario si es un rol por defecto y activo en el momento de conexin del usuario).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
93
MODIFICACIN DE ROLES.
Un rol solo puede modificarse para cambiar su mtodo de autentificacin. Debe poseerse el privilegio de sistema ALTER ANY ROLE o haber sido sido otorgado el rol con la opcin ADMIN. Sintaxis:
ALTER ROLE <rol> NOT IDENTIFIED/ IDENTIFIED BY <contrasea>;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
94
El usuario que crea el rol implcitamente lo tiene asignado con ADMIN OPTION. Si a un usuario no se le otorga un rol con ADMIN OPTION; necesita el privilegio GRANT ANY ROLE para otorgarlo, o haberlo creado.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
95
PARMETRO MAX_ENABLED_ROLES.
EL numero mximo de roles de base de datos activos, incluyendo aquellos contenidos dentro de otros roles, que un usuario puede poseer viene dado por el parmetro de inicializacin MAX_ENABLED_ROLES.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
96
Un rol por defecto es aquel que automticamente se activa al conectarse. Con la sentencia ALTER USER se limitan los roles por defecto asignados a un usuario. Sintaxis:
ALTER USER <usuario> DEFAULT ROLE <rol1>,<roln>/ ALL [EXCEPT rol1 [,role2]... ] / NONE;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
97
98
DEASIGNACIN DE ROLES.
Puede hacerlo cualquier usuario con la opcin ADMIN OPTION para un rol, tambin aquellos usuarios con el privilegio GRANT ANY ROLE. Sintaxis:
REVOKE <rol1>, <roln> FROM <usuario>|<rol>|PUBLIC [, <usuario>|<rol>} ]...
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
99
BORRADO DE ROLES.
Debe poseerse el privilegio DROP ANY ROLE o haber sido concedido el rol con ADMIN OPTION. Sintaxis:
DROP ROLE <rol>;
Al borrar un rol se deasigna de todos los usuarios y roles, y se elimina de la base de datos.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
100
101
La vista SESSION_ROLES informa de aquellos roles que, para el usuario actual, estn activados en un momento determinado. El nmero de roles activos a la vez est limitado por el parmetro MAX_ENABLED_ROLES. Al crear un usuario, todos los roles asignados son por defecto; a menos que se limite con ALTER USER.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
102
IDENTIFIED BY indica la contrasea del rol al activarlo. ALL activa todos los roles excepto los que aparecen en la clusula EXCEPT (no puede usarse esta opcin para activar roles con contrasea). NONE desactiva todos los roles en la sesin (solo son activos los privilegios otorgados directamente).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 GESTIN DE USUARIOS Y RECURSOS
103
104
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
105
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
106
107
Paquete dbms_job. Procedimiento change. Paquete dbms_job. Procedimiento broken. Paquete dbms_job. Procedimiento run. Cmo matar un trabajo en ejecucin?. Vistas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
108
TRABAJOS Y PROCESOS.
Los trabajos son cdigo PL/SQL a ejecutar de forma peridica. Se lanzan a la cola de trabajos, especificando la frecuencia con que deben ser ejecutados. Existe un proceso coordinador en background (ora_cjq0_xxxx), que selecciona los trabajos a ejecutar, los ordena y genera de forma dinmica los procesos de job, Jnnn, en nmero suficiente para ejecutar los trabajos en cola. Cada trabajo es ejecutado en un momento dado por un slo proceso.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
109
PROCESOS.
Se regulan por el parmetro (init.ora) siguientes: - JOB_QUEUE_PROCESSES. Parmetro dinmico que indica el mximo nmero de procesos (J000 ... J999) que pueden crearse para la ejecucin de trabajos, tambin se usan para el refresco de datos en entornos con rplica. Si su valor es cero, no existe proceso coordinador. EL mximo nmero de procesos Jnnn puede variarse de forma dinmica con la sentencia:
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = <numero>;
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 TRABAJOS (JOBS)
110
PAQUETE DBMS_JOB.
Para gestionar la cola de trabajos se dispone del paquete DBMS_JOB. usuario que pueda ejecutar los Cualquier procedimientos contenidos en el paquete DBMS_JOB puede gestionar trabajos en la cola. No hay privilegios de base de datos asociados con el uso de trabajos. DBMS_JOB no permite a un usuario gestionar ningn trabajo excepto los propios.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 TRABAJOS (JOBS)
111
112
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
113
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
114
INTERVAL
Funcin de fecha que calcula la siguiente vez en que se ejecutara el trabajo. Por defecto NULL.
NO_PARSE
Parmetro booleano. Si su valor es FALSE, por defecto, se analiza el procedimiento asociado al trabajo. Si es TRUE se har la primera vez que se ejecute. Por ejemplo, cuando se envia un trabajo antes de crear las tablas asociadas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
115
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
116
Significado Siete das despus de la ultima ejecucin. Cada media hora. Todos los lunes a las 15:00 horas. Cada treinta minutos. Cada quince minutos. Un mes despus.
TRABAJOS (JOBS)
117
TRABAJOS. EJECUCION.
Los procesos Jnnn son los encargados de crear la sesin oportuna para ejecutar un trabajo. El entorno de ejecucin es el mismo al existente cuando se lanz y con los privilegios por defecto del propietario. Al propietario deben haberse asignado explcitamente los privilegios necesarios para los objetos referenciados en el trabajo (no a travs de roles).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
118
TRABAJOS. BLOQUEOS.
Oracle slo permite que un trabajo se ejecute en una sesin en un momento determinado. Al ejecutarse, su sesin adquiere un queue lock para el mismo (identificado con JQ). Mediante la vista V$LOCK puede sesiones con este tipo de bloqueo. identificarse las
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
119
Puede deberse a un fallo de red, de instancia, o excepcin al ejecutarse. Si falla, se intenta ejecutar de forma repetida (intervalos de 1, 2, 4, 8 ... minutos). Si se alcanzan 16 intentos fallidos, el trabajo se marca como broken y no se ejecuta de nuevo.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 TRABAJOS (JOBS)
120
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
121
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
122
parmetros
123
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
124
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
125
Sintaxis:
DBMS_JOB.RUN (numero_trabajo);
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
126
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
127
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
128
VISTAS.
DBA_JOBS. Trabajos en la base de datos. USER_JOBS. Trabajos que pertenecen al suuario actual. DBA_JOBS_RUNNING. Trabajos en ejecucin. V$LOCK. Bloqueos mantenidos por el servidor. V$SESSION. Informacin de sesiones actuales.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
TRABAJOS (JOBS)
129
TEMA 9. AUDITORA.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
130
TEMA 9. AUDITORA.
Auditora. Tipos de auditora. Registros de auditora. Audit trail. Auditora de usuarios administradores. Audit trail de sistema operativo. Auditora. Sentencia audit. Auditora de sentencias. Opciones. Auditora de privilegios. Privilegios auditables.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
131
TEMA 9. AUDITORA.
Auditora de esquema. Opciones. Desactivacin. Sentencia noaudit. Desactivacin de la auditora. Control del audit trail. Proteccin del audit trail. Auditora. Recomendaciones. Interpretacin del audit trail. Vistas estticas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
132
AUDITORA.
Mediante la auditora se intenta monitorizar y registrar acciones en la base de datos con el fin de :
Investigar actividades maliciosas (borrado de tablas, ..) Recoger datos sobre actividades concretas (tablas que se actualizan, usuarios concurrentes, )
133
TIPOS DE AUDITORA.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
134
Los registros se guardan en la tabla SYS.AUD$ (audit trail). Est codificada y no es legible; existen diferentes vistas que permiten usar la informacin almacenada.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
135
136
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
137
la
base
de
datos
con
privilegios
de
138
AUDITORIA
139
Por otra parte, la auditora en sistema operativo puede ayudar a examinar la actividad global del sistema con mayor facilidad; al estar todos los registros de auditora (de Oracle y de otras herramientas) en un mismo lugar.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
140
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
141
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
142
AUDITORA DE SENTENCIAS.
Sintaxis:
AUDIT <sentencia1, sentencian>/ALL BY <usuario1, usuarion> BY SESSION/ACCESS WHENEVER SUCESSFUL/NOT SUCCESSFUL;
La clusula BY <usuario> permite restringir la auditora slo a aquellas sentencias ejecutadas por los usuarios indicados. La clusula BY SESSION, clausula por defecto, indica que se desea un slo registro para todas las sentencias SQL y operaciones del mismo tipo ejecutadas en la misma sesin.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
143
AUDITORA DE SENTENCIAS.
La clusula BY ACCESS indica que se desea un registro para cada sentencia SQL y operacin auditadas. Si se auditan sentencias de definicin de datos del lenguaje (DDL) siempre se audita por acceso. La clusula WHENEVER SUCESSFUL, permite auditar slo sentencias SQL y operaciones que surten efecto. La clusula WHENEVER NOT SUCESSFUL, permite auditar slo sentencias SQL y operaciones que fallan o generan errores. Si se omiten las dos opciones anteriores, se realiza la auditora independientemente del xito o fallo de la sentencia.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
144
145
Rollback Statement Create rollback segment/ alter rollback segment / drop rollback segment Sequence Session Synonym System audit System grant Table Tablespace Create sequence / drop sequence Conexiones
- valor por defecto y nico BY SESSION -
Create synonym / drop synonym Audit sentencias_sql / Noaudit sentencias_sql Grant y revoke privilegios_sistema y roles Create table / drop table / truncate table Create tablespace / drop tablespace / alter tablespace
AUDITORIA
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
146
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
147
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
148
AUDITORA DE PRIVILEGIOS.
Sintaxis:
AUDIT <priv_sistema1, priv_sisteman> /ALL PRIVILEGES BY <usuario1, usuarion> BY SESSION/ACCESS WHENEVER SUCESSFUL/NOT SUCCESSFUL;
La clusula ALL PRIVILEGES, indica que debe auditarse todo privilegio de sistema. Es posible indicar los roles CONNECT, RESOURCE o DBA, para auditar los privilegios de sistema asociados.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
149
PRIVILEGIOS AUDITABLES.
ALTER DATABASE ALTER SYSTEM AUDIT SYSTEM CREATE DATABASE LINK CREATE PUBLIC DATABASE LINK DROP PUBLIC DATABASE LINK CREATE PROCEDURE CREATE ANY PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE CREATE PROFILE ALTER PROFILE DROP PROFILE CREATE ROLE ALTER ANY ROLE DROP ANY ROLE CREATE ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT DROP ROLLBACK SEGMENT CREATE SESSION ALTER SESSION
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
150
PRIVILEGIOS AUDITABLES.
CREATE ANY TABLE / ANY INDEX ALTER ANY TABLE / ANY INDEX DELETE ANY TABLE DROP ANY TABLE / ANY INDEX INSERT ANY TABLE UPDATE ANY TABLE SELECT ANY TABLE CREATE USER ALTER USER DROP USER CREATE VIEW CREATE ANY VIEW DROP ANY VIEW ANALYZE ANY AUDIT ANY COMMENT ANY TABLE
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
151
AUDITORA DE ESQUEMA.
Sintaxis:
AUDIT <clausula_objeto1, clausula_objeton>/ALL ON <esquema>.objeto_auditado/DEFAULT BY SESSION/ACCESS WHENEVER SUCESSFUL/NOT SUCCESSFUL;
La clusula ALL indica todas las opciones posibles sobre un tipo de objeto concreto. Mediante la clusula ON DEFAULT se establece por defecto las opciones indicadas para todo objeto creado con posterioridad. Al establecerlas permanecen aquellas definidas por defecto para objetos creados previamente (pueden cambiarse indicando explcitamente el objeto).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
152
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
153
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
154
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
155
156
DESACTIVACIN DE LA AUDITORA.
Mediante la sentencia NOAUDIT slo se indican opciones de auditora. Para deshabilitar la auditora debe modificarse el parmetro de inicializacin AUDIT_TRAIL.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
157
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
158
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
159
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
160
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
161
AUDITORA. RECOMENDACIONES.
Es necesario seguir una serie de reglas a la hora de auditar la actividad de la base de datos:
- Limitar el numero de acciones auditadas y el tiempo durante el que se har. As disminuye el impacto de la auditora sobre las sentencias supervisadas y se limita el tamao del audit trail (qu debo o quiero auditar?). - Evaluar el propsito y planear una estrategia (para qu y por qu audito?, qu actividad maliciosa he detectado?). - Si se audita debido a la sospecha de alguna accin maliciosa; debe comenzarse por auditar acciones de tipo general para, una vez analizada la informacin, pasar a auditar acciones mas concretas.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
162
AUDITORA. RECOMENDACIONES.
- Proteger el audit trail, de forma que la infomacion de auditora no pueda ser aadida, modificada o borrada sin ser registrada la operacin. - Controlar de forma estricta quien tiene derecho a auditar. - En caso de que se desee recoger informacin histrica sobre determinadas operaciones debe auditarse slo aquellas acciones que sean pertinentes; y preocuparse de guardar los registros de auditora de inters y eliminar peridicamente del audit trail esta informacion.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
AUDITORIA
163
DBA_AUDIT_EXISTS. Registros producidos por AUDIT NOT EXISTS. DBA_AUDIT_OBJECT. Registros para todos los objetos en el sistema. DBA_AUDIT_SESSION. Registros relativos a conexiones y desconexiones.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 AUDITORIA
164
165
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
166
167
168
COPIA FISICA.
Realizar una copia fsica implica copiar los sistemas de ficheros asociados a la base de datos y aquellos donde se ha instalado la misma. La copia de los ficheros de base de datos se realizar de forma diaria. La copia del software de base de datos se realizar con una frecuencia semanal, dado su menor nivel de actualizacin. Previamente a la copia fsica se efectuar una parada de la base de datos, de forma que su contenido sea ntegro y coherente.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
169
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
170
Binarios. Ficheros NET8. Comunicaciones. Enlaces a donde residen los ficheros de inicializacin. Ficheros de servidor y libreras bd requeridas.
/rdbms
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
171
bdump
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
172
Nombre base datos. Ficheros core dump. Progr. creacin bd. Fich. Export bd. init.ora Fich. traza usuario.
173
COPIAS DE SEGURIDAD
174
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
175
Se usar la sentencia TAR: Copia los sistemas de ficheros indicados a un dispositivo fsico. El proceso debe ser automatizado y el cese de actividad de la base de datos afectar lo menos posible al servicio.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
176
UTILIDADES EXPORT/IMPORT.
Son usadas para:
Transferir objetos de datos entre bases de datos Oracle (independientemente de la plataformas en que residan). Proporcionar copia de seguridad lgica para objetos de la base de datos, un espacio de almacenamiento o la base de datos al completo. Migracin entre versiones de base de datos (Peligro!).
La copia lgica realizada con export se almacena en un fichero binario; este fichero slo puede ser ledo por la utilidad import. Son utilidades complementarias.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
177
UTILIDAD EXPORT.
Para usar la utilidad debe tenerse el privilegio CREATE SESSION. Para exportar objetos pertenecientes a otro esquema de usuario debe tenerse asignado el rol EXP_FULL_DATABASE. Como resultado se obtiene un fichero .dmp (fichero de exportacin) y, opcionalmente, un fichero .log con el informe de incidencias. Es conveniente que todos los ficheros generados para usar en la exportacin o como resultado de ella estn en un sistema de ficheros independiente (p.ej. / export/<nombre_bd>).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
178
UTILIDAD EXPORT.
Existen cuatro modos de realizar export:
- Tabla. Cualquier usuario puede exportar tablas indicadas del esquema de usuario. - Usuario. Cualquier usuario puede exportar todos los objetos del esquema. - Tablespace. Permite mover tablespaces entre bases de datos. Slo posible con el privilegio EXP_FULL_DATABASE (como SYSDBA). - Full database. Exporta todos los objetos de la BD (no se exportan disparadores pertenecientes al esquema SYS). Slo posible con el privilegio EXP_FULL_DATABASE.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
179
UTILIDAD EXPORT.
Aunque puede ejecutarse la utilidad e ir indicando en el prompt diferentes opciones, se recomienda usar un fichero de parmetros. Sintaxis: exp HELP=Y
exp Proporciona ayuda en lnea. Modo interactivo (sin modo directo).
exp PARFILE=<fichero_parametros>
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
180
UTILIDAD EXPORT.
Parmetro
BUFFER COMPRESS (Y/N) CONSISTENT (Y/N) CONSTRAINTS (Y/N) DIRECT (Y/N) FILE FULL (Y/N)
Descripcin
Tamao bufer de datos (bytes). No tiene efecto al usar direct path. Incluir todos los datos en una extensin (no para LOB). Asegura la consistencia de los datos exportados cuando pueden estar siendo actualizados (p.ej. con la bd abierta). Incompatible con copias incrementales. Exportar o no las restricciones sobre tablas. Modo directo o no -convencional- de exportacin. Nombre del fichero expdat.dmp. de export, por defecto
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
181
UTILIDAD EXPORT.
Parmetro
GRANTS (Y/N) INDEXES (Y/N) LOG OWNER ROWS (Y/N) TABLES TABLESPACES TRANSPORT_TABLESPACE (Y/N)
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
Descripcin
Exportar o no privilegios sobre objetos. Exportar o no ndices. Indica fichero mensajes. donde se guardarn los
Indica los usuarios de los que se realizara la copia. Exportar o no los datos de las tablas. Relacin de tablas a exportar (modo tabla). Lista de tablespaces a exportar. Permite exportacin de tablespaces.
COPIAS DE SEGURIDAD
182
UTILIDAD EXPORT.
Parmetro
TRIGGERS (Y/N) USERID
Descripcin
Exportar o no disparadores. Usuario y contrasea del usuario que realiza la exportacin (Peligro!).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
183
184
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
185
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
186
CASOS PRACTICOS.
La utilidad export se aconseja en los siguientes casos:
- Realizacin de una copia de seguridad de la base de datos. FILE=<nombre_bd>.dmp FULL=Y LOG=<nombre_bd>.log - Copias de seguridad de esquema de usuario (al borrarlo y necesitar guardar su esquema de forma temporal). FILE=<nombre_esquema_bd>.dmp OWNER=<propietario del esquema> LOG=<nombre_esquema_bd>.log COMPRESS=Y
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
187
CASOS PRACTICOS.
- Copias de seguridad de tablas antes de realizar operaciones delicadas como borrado masivo de datos, cargas de datos, actualizaciones, FILE=<nombre_tabla>.dmp TABLES=(<esquema>.<nombre_tabla>, ) LOG=<nombre_esquema_tabla>.log COMPRESS=Y
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
188
UTILIDAD IMPORT.
La utilidad import es complementaria de export. Los objetos se importan en el orden en que estn en el fichero de exportacin:
Definicin de tipos. Definiciones de tablas. Datos de tablas. ndices. Restricciones de integridad, vistas, procedimientos disparadores. - ndices bitmap, funcionales y de dominio.
En tablas que ya existen es aconsejable deshabilitar las restricciones de integridad referenciales temporalmente.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
189
UTILIDAD IMPORT.
Para usar la utilidad debe tenerse el privilegio CREATE SESSION. Por supuesto, deben tenerse los privilegios necesarios para crear o trabajar con los objetos a importar. Un usuario puede importar un fichero de export no creado por l. Si el fichero de exportacin fue creado con el privilegio EXP_FULL_DATABASE, debe tenerse asignado el rol IMP_FULL_DATABASE. Como resultado se obtiene un fichero .log con el informe de incidencias.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
190
UTILIDAD IMPORT.
Existen cuatro modos de realizar import:
- Tabla. Cualquier usuario puede importar tablas indicadas del esquema de usuario. - Usuario. Cualquier usuario puede importar todos los objetos del esquema. - Tablespace. Permite mover tablespaces entre bases de datos. Slo usuarios privilegiados. - Full database. Slo IMP_FULL_DATABASE. posible con el privilegio
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
191
UTILIDAD IMPORT.
Aunque puede ejecutarse la utilidad e ir indicando en el prompt diferentes opciones, se recomienda usar un fichero de parmetros. Sintaxis: imp HELP=Y
imp Proporciona ayuda en lnea. Modo interactivo.
imp PARFILE=<fichero_parametros>
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
192
UTILIDAD IMPORT.
Parmetro
BUFFER
Descripcin
Tamao bufer de datos (bytes) usado en la transferencia. Hacer commit o no despus de cada insercin. til para evitar que los segmentos de rollback crezcan demasiado. Si ocurre un error y no hay clave nica se producirn filas duplicadas. Importar o no las restricciones sobre tablas. Indica si los ficheros de datos existentes debe ser o no reutilizados. Nombre del fichero de export a importar, por defecto expdat.dmp. Lista de esquemas a importar (usado normalmente con TOUSER).
COPIAS DE SEGURIDAD
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
193
UTILIDAD IMPORT.
Parmetro
FULL (Y/N) GRANTS (Y/N)
Descripcin
Importar o no el fichero completo. Importar o no privilegios sobre objetos. Indica la forma de tratar los errores generados en la creacin de objetos. Si IGNORE=Y se ignoran los errores de creacin y se continua, en caso contrario se muestran. En el caso de tablas, si IGNORE=Y se importan los datos en las tablas existentes. Si IGNORE=N se genera un error y no se inserta. Importar o no ndices. Fichero de descarga para sentencias creacin de ndices, no son creados.
COPIAS DE SEGURIDAD
IGNORE (Y/N)
de
194
UTILIDAD IMPORT.
Parmetro
LOG ROWS (Y/N)
Descripcin
Indica fichero donde se guardaran los mensajes. Incluir datos en la importacin. Si SHOW=Y, el contenido del fichero de export se lista pero no se importa. Solo puede usarse con los parmetros FULL=Y, FROMUSER, TOUSER, o TABLES. Lista de tablas a importar. Lista de espacios de almacenamiento a importar. Lista de esquemas donde importar. Se requiere IMP_FULL_DATABASE. Importar datos de espacios de almacenamiento.
COPIAS DE SEGURIDAD
SHOW (Y/N)
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
195
CASOS PRACTICOS.
Se har uso de la utilidad import en los casos:
- Recuperacin de la base de datos a un punto en el tiempo. FILE=<nombre_fichero_export>.dmp FULL=Y LOG=<nombre_bd>.log - Recuperacin de un esquema de usuario. FILE=<nombre_fichero_export>.dmp FROMUSER=<propietario del esquema> TOUSER=<esquema_importacin> LOG=<nombre_esquema_bd>.log
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
196
CASOS PRACTICOS.
- Recuperacin de tablas tras un borrado accidental (si son muy voluminosas emplear opcin COMMIT=Y). Es aconsejable en este caso importar a un esquema diferente a aquel al que pertenece la tabla y posteriormente hacer un create table as select * from ; o un insert into select * from ;. FILE=<nombre_fichero_export>.dmp FROMUSER=<esquema_origen> TOUSER=<esquema_destino> TABLES=(<nombre_tabla1>, ) LOG=<nombre_esquema_tabla>.log
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
197
CASOS PRACTICOS.
- Recuperacin de procedimientos, disparadores y paquetes. En este caso no es posible la importacin, es necesario crear un fichero con el contenido del fichero de exportacin, editarlo, seleccionar el texto buscado para confeccionar el script adecuado y ejecutar este ultimo. FILE=<nombre_fichero_export>.dmp FROMUSER=<esquema_origen> SHOW=Y GRANTS=N ROWS=N INDEXES=N LOG=<nombre_esquema_tabla>.log - En el caso de ndices se usa el parmetro INDEXFILE.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
198
SQL*LOADER.
SQL*Loader carga datos que proceden de otro tipo de ficheros distintos a tablas Oracle. Tiene como entrada un fichero de control y uno o ms ficheros de datos. Su salida es una base de datos donde se cargan los datos, un fichero de log, un fichero donde se guardan los registros rechazados (bad file) y un fichero donde se almacenan los registros descartados por no cumplir los criterios especificados en el fichero de control (discard file).
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
199
SQL*LOADER.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
200
201
202
SQL*LOADER. EJEMPLOS.
-- Ejemplo 1 de fichero de control load data infile 'example.dat' "fix 10 into table example fields terminated by ',' optionally enclosed by '" (col1, col2) example.dat: 0001, abcd, 0002,fghi, 0003,klmn,
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
203
SQL*LOADER. EJEMPLOS.
-- Ejemplo 2 de fichero de control (incluye datos en el fichero) load data infile * into table dept fields terminated by ',' optionally enclosed by '" (deptno, dname, loc) begindata 12,research,"saratoga 10,"accounting",cleveland 11,"art",salem 13,finance,"boston 21,"sales",phila. 22,"sales",rochester 42,"int'l","san fran"
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006 COPIAS DE SEGURIDAD
204
SQL*LOADER. EJECUCION.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
COPIAS DE SEGURIDAD
205
metalink.oracle.com
Soporte tcnico mantenimiento. para usuarios con contrato de
otn.oracle.com
Portal para desarrolladores. Interesante registrarse.
otn.oracle.com/oramag
Revista Oracle Magazine.
www.orafaq.org
Sitio no oficial sobre Oracle.
Administracin Bsica de Oracle 9i. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez - 2006
206