Det låter som att du är ute efter "revision". Oracle har en inbyggd funktion som heter Fine Grain Auditing (FGA). I ett nötskal kan du granska allt eller specifika förhållanden. Vad som är riktigt coolt är att du kan "granska" urval såväl som transaktioner. Enkelt kommando för att komma igång med revision:
audit UPDATE on SCOTT.EMP by access;
Se det som en "trigger" för utvalda uttalanden. Till exempel skapar du policyer:
begin
dbms_fga.add_policy (
object_schema=>'BANK',
object_name=>'ACCOUNTS',
policy_name=>'ACCOUNTS_ACCESS'
);
end;
När du har definierat policyn, när en användare frågar tabellen på vanligt sätt, enligt följande:
select * from bank.accounts;
revisionsspåret registrerar denna åtgärd. Du kan se leden genom att utfärda:
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