Oracle
 sql >> Base de données >  >> RDS >> Oracle

Création d'un déclencheur global qui écoute plusieurs tables

Y a-t-il une raison pour laquelle vous voulez réinventer la roue ? Pourquoi ne pas utiliser l'audit intégré d'Oracle ?

Oracle Base fournit quelques informations de base sur la façon de démarrer l'audit :

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

La liste suivante fournit une description de chaque paramètre :

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.

Pour activer l'audit sur la piste d'audit de la base de données, activez l'audit sur la base de données

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

System altered.

Arrêter et redémarrer la base de données

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

Maintenant pour auditer SELECTS , INSERTS , UPDATES , DELETES par utilisateur cube faites ceci :

CONNECT sys/password AS SYSDBA

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

Les journaux audités peuvent être affichés en interrogeant DBA_AUDIT_TRAIL

Lectures complémentaires :