Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erstellen eines globalen Triggers, der mehrere Tabellen überwacht

Gibt es einen Grund, warum Sie das Rad neu erfinden möchten? Warum nicht das integrierte Auditing von Oracle nutzen?

Oracle Base bietet einige grundlegende Informationen zum Einstieg in die Prüfung:

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

Die folgende Liste enthält eine Beschreibung jeder Einstellung:

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.

Um das Auditing für den Datenbank-Audit-Trail zu aktivieren, aktivieren Sie das Auditing für db

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

System altered.

Fahren Sie die Datenbank herunter und starten Sie sie neu

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

Nun zur Prüfung von SELECTS , INSERTS , UPDATES , DELETES von Benutzer cube tun Sie dies:

CONNECT sys/password AS SYSDBA

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

Die geprüften Protokolle können durch Abfragen von DBA_AUDIT_TRAIL aufgerufen werden

Weiterführende Literatur: