Auditar una tabla o usuario en #Oracle 10g

Antes de auditar una tabla o usuario de la base de datos Oracle, es necesario que ésta esté habilitada para ello. Los pasos aquí mostrados se deben hacer siempre con un usuario conectado con permisos administrativos (AS SYSDBA) como el usuario SYS.

Para saber si Oracle está habilitada para generar auditorías listamos el valor del parámetro AUDIT desde sqlplus o sqldeveloper autentificados con un usuario administrativo, por ejemplo SYS:

En mi caso la auditoría ya esta habilitada. Esto lo indica el parámetro audit_trail que tiene asignado el valor DB_EXTENDED. Por defecto, cuando se instala Oracle, la auditoría esta deshabilitada y este parámetro tiene el valor NONE

El valor DB_EXTENDED le indica a Oracle registrar los eventos de auditoría en la tablas SYS.AUD$. DB_EXTENDED registra, además de otros datos, tanto las variables encadenadas (bind) como las consultas ejecutadas, en los campos SQL_BIND y SQL_TEXT respectivamente.

Cambiemos el valor de audit_trail en caso de que tenga el valor NONE:

Para que este parámetro estático tome efecto y Oracle permita auditorías, es necesario dar baja y luego dar alta nuevamente la base de datos con los comandos SHUTDOWN y STARTUP respectivamente:

Bien, si vamos a auditar una tabla por cualquier operación que se haga sobre ella, ejecutaríamos la siguiente sentencia sql:

Le estamos indicando de cualquier operación o sentencia sql que se haga sobre la tabla facturas del esquema pagos, sea registrada. BY ACCESS indica que insertará un registro en las tablas de auditoría por cada operación que se haga en la tabla, la otra opción BY SESSION, registraría todas las operaciones a la tabla de una sesión de usuario en un sólo registro de auditoría.

Ahora si queremos auditar todas las operaciones de inserción, actualización y borrado a cualquier tabla que haga un usuario específico:

En este ejemplo estaremos auditando los insert, delete y update que haga en usuario pancho a cualquier tabla y registrando un registro en las tablas de auditoría por cada operación.

Para listar las operaciones de auditoría que ha registrado Oracle, podemos usar la vista dba_audit_trail:

Para más opciones de auditoría ver la ayuda de Oracle 10g. Espero y les ayude este post.

¡Visita los patrocinadores por favor!

¡Saludos!

 

 

 

 

 

Todo comentario es bienvenido