sql >> Databasteknik >  >> RDS >> Oracle

Skapa en global trigger som lyssnar på flera tabeller

Finns det någon anledning till att du vill uppfinna hjulet på nytt? Varför inte använda Oracles inbyggda revision?

Oracle Base ger lite grundläggande information om hur du kommer igång med revision:

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

Följande lista ger en beskrivning av varje inställning:

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.

För att möjliggöra revision till databas revisionsspår aktivera revision till db

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

System altered.

Stäng av och starta om db

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

Nu ska du granska SELECTS , INSERTS , UPDATES , DELETES av användaren cube gör så här:

CONNECT sys/password AS SYSDBA

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

De granskade loggarna kan hämtas genom att fråga DBA_AUDIT_TRAIL

Mer läsning:




  1. Enkel SQL Server-förklaring för att hitta en post med två villkor

  2. 8000 uppdateringar per sekund med mysql

  3. Blir index snabbare än> jämförelse i MySQL?

  4. Hur exporterar man analyserad data från Python till en Oracle-tabell i SQL Developer?