MOVER TABLAS DE AUDITORIA A OTRO TABLESPACE
OBJETIVO
Mover las tablas de auditoría de base de datos a otro tablespace mediante el paquete AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
INTRODUCCIÓN
Recordamos que el movimiento de las tablas de auditoría de oracle no fue una tarea sencilla y solía dar problemas. En oracle 9 no estaba soportada y para realizarlo en oracle 10 se necesitaba crear una tabla intermedia. Oracle 11R2 nos proporciona el paquete AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION para poder llevar a cabo esta tarea.
COMPROBACION DEL TABLESPACE ACTUAL DE AUDITORIA
Para saber en que tablespace se encuentran actualmente los registros guardados de auditoría realizamos la siguiente consulta
select owner, segment_name, tablespace_name from dba_segments where segment_name like '%AUD$'
or segment_name like '%FGA_LOG%'
OWNER.; SEGMENT_NAME; TABLESPACE_NAME
SYS ; AUD$ ; SYSTEM
SYS ; AUD$ ; SYSTEM
NUEVO TABLESPACE PARA AUDITORIA
Si no tenemos creado el tablespace para mover la auditoría lo creamos.
create tablespace auditoria datafile '/home/oracle/databases/ora11g/audit01.dbf' size100M
autoextend on maxsize 2G;
Una vez creado el nuevo tablespace ya podemos moverlo. En este caso lo movemos del tablepsace SYSTEM al tablespace AUDITORIA
exec DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION
(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD,audit_trail_location_value => 'AUDITORIA');
audit_trail_type indicamos el tipo de auditoría que vamos a querer mover. En este caso hemos movido la información que se guarda en la tabla de base de datos sys.aud$ y fga_log$ (dbms_audit_mgmt.audit_trail_db_std)
Otros posibles valores para audit_trail_type los recogemos a continuación:
AUDIT_TRAIL_AUD_STD –> Auditoría estándar de base de datos que se registra en la tabla SYS.AUD$
AUDIT_TRAIL_FGA_STD –> Registros que se almacenan en las tablas SYS.FGA_LOG$
AUDIT_TRAIL_DB_STD –> Auditoria de SYS.AUD$ y SYS.FGA_LOG$
AUDIT_TRAIL_FILES –> Auditoría relativa a los archivos de sistema operativos y registros almacenados xml
AUDIT_TRAIL_OS –> Auditoría que almacena la información relativa a los registros almacenados en el sistema operativo
AUDIT_TRAIL_XML –> Auditoría que almacena la información relativa a los registros almacenados en XML
audit_trail_location_value indica el nuevo tablespace donde queremos almacenar esa información.
COMPROBAR QUE SE HA REALIZADO EL CAMBIO CORRECTAMENTE
Para ver que se ha realizado correctamente el cambio, podemos realizar de nuevo la consulta y ver que se ha modificado el tablespace.
El único inconveniente que podemos encontrar es que al mover algún componente se pueden invalidar alguno de los otros objetos relacionados con la auditoría y hay que volverlos a compilar. Los objetos inválidos podemos verlos con la siguiente consulta.
select owner, object_name from dba_objects where status <> 'VALID' and object_name like '%AUDIT%';
OWNER, OBJECT_NAME
SYS, DBA_FGA_AUDIT_TRAIL
PUBLIC, DBA_FGA_AUDIT_TRAIL
SYS, DBA_COMMON_AUDIT_TRAIL
PUBLIC, DBA_COMMON_AUDIT_TRAIL
Nota: En el caso de los objetos que pertenecen a sys simplemente hay que compilarlos de nuevo y aquellos que pertenecen a public, en este caso sinónimos públicos bastaría con recrear el sinónimo de esas tablas.