Het klinkt alsof je op zoek bent naar 'auditing'. Oracle heeft een ingebouwde functie genaamd Fine Grain Auditing (FGA). In een notendop kunt u alles of specifieke voorwaarden auditen. Wat echt cool is, is dat je zowel selecties als transacties kunt 'auditen'. Eenvoudig commando om aan de slag te gaan met auditing:
audit UPDATE on SCOTT.EMP by access;
Zie het als een 'trigger' voor geselecteerde uitspraken. U maakt bijvoorbeeld beleid:
begin
dbms_fga.add_policy (
object_schema=>'BANK',
object_name=>'ACCOUNTS',
policy_name=>'ACCOUNTS_ACCESS'
);
end;
Nadat u het beleid hebt gedefinieerd, wanneer een gebruiker de tabel op de gebruikelijke manier opvraagt, als volgt:
select * from bank.accounts;
de audit trail legt deze actie vast. Je kunt het pad zien door het volgende uit te geven:
select timestamp,
db_user,
os_user,
object_schema,
object_name,
sql_text
from dba_fga_audit_trail;
TIMESTAMP DB_USER OS_USER OBJECT_ OBJECT_N SQL_TEXT
--------- ------- ------- ------- -------- ----------------------
22-OCT-08 BANK ananda BANK ACCOUNTS select * from accounts