Oracle
 sql >> Database >  >> RDS >> Oracle

Creazione di un trigger globale che ascolta più tabelle

C'è un motivo per cui vuoi reinventare la ruota? Perché non utilizzare il controllo integrato di Oracle?

Oracle Base fornisce alcune informazioni di base su come iniziare a controllare:

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

L'elenco seguente fornisce una descrizione di ciascuna impostazione:

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.

Per abilitare l'auditing su database, abilita l'auditing su db

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

System altered.

Spegni e riavvia il db

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

Ora per controllare SELECTS , INSERTS , UPDATES , DELETES per utente cube fai questo:

CONNECT sys/password AS SYSDBA

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

I log controllati possono essere richiamati interrogando DBA_AUDIT_TRAIL

Ulteriori letture: