Auditoria de sentencias sql

Como puedo auditar la sentencia completa que ejecuta un usuario.
Ejemplo: usuario A, si el usuario A realiza la siguiente instrucción.
insert into table_1 (codigo) values ('1')
Necesito que la instruccion completa sea auditado o guardada en algun lugar
"insert into table_1 (codigo) values ('1')"
Gracias por su ayuda

1 Respuesta

Respuesta
1
Esto lo puedes obtener implementando la Auditoría de Oracle (una de las tantas maneras).
Para activar la auditoría, puede hacerlo de diferentes formas:
Antes que nada debes colocar en el init.ora, el parámetro AUDIT_TRAIL=(none,db,os). Si define "db" las auditorías se guardaran en la tabla de sys.aud$. Por lo cual es recomendable borrarla periodicamente.
Las otras formas son más detalladas y es directamente por comandos, podría ser al nivel de esquema, cuenta de usuario, acción, objecto, etc.
Para lo que tu quieres, podría servir el siguiente ejemplo: audit [insert|update|all] on owner. table;
Lo anterior no registrará los cambios que se hayan realizado sobre la tabla, sino solamente la acción (sin detalles). Para registrar los detalles de auditoría (columnas modificadas, debes usar el package DBMS_FGA. [add_policy|drop_policy|enable_policy|disable_policy].
En resumen, la auditoría es muy extensa, te recomiendo leer más sobre ella, analizar que quieres y como puedes implementarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas