sql >> Base de Datos >  >> RDS >> Oracle

Creación de un activador global que escucha varias tablas

¿Hay alguna razón por la que quieras reinventar la rueda? ¿Por qué no hacer uso de la auditoría integrada de Oracle?

Oracle Base proporciona información básica sobre cómo comenzar con la auditoría:

AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }

La siguiente lista proporciona una descripción de cada configuración:

none or false - Auditing is disabled.
db or true - Auditing is enabled, with all audit records stored in the database audit trial (SYS.AUD$).
db,extended - As db, but the SQL_BIND and SQL_TEXT columns are also populated.
xml- Auditing is enabled, with all audit records stored as XML format OS files.
xml,extended - As xml, but the SQL_BIND and SQL_TEXT columns are also populated.
os- Auditing is enabled, with all audit records directed to the operating system's audit trail.

Para habilitar la auditoría a la pista de auditoría de la base de datos, habilite la auditoría a db

SQL> ALTER SYSTEM SET audit_trail=db,extended SCOPE=SPFILE;

System altered.

Apague y reinicie la base de datos

SQL> SHUTDOWN
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
ORACLE instance started.

Ahora para auditar SELECTS , INSERTS , UPDATES , DELETES por usuario cube haz esto:

CONNECT sys/password AS SYSDBA

AUDIT ALL BY cube BY ACCESS;
AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY cube BY ACCESS;

Los registros auditados se pueden abrir consultando DBA_AUDIT_TRAIL

Lectura adicional: