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

Wie kann ich Löschvorgänge in einer bestimmten Tabelle mit Oracle überwachen?

Es gibt eine neue Funktion namens Fine-Grained Auditing (FGA), die Protokolle in SYS.FGA_LOG$ statt in SYS.AUD$ speichert. Hier ist das FGA-Handbuch .

BEGIN
  DBMS_FGA.ADD_POLICY(
   object_schema      => 'HR',
   object_name        => 'FOO',
   policy_name        => 'my_policy',
   policy_owner       => 'SEC_MGR',
   enable             =>  TRUE,
   statement_types    => 'DELETE',
   audit_condition    =>  'USER = ''myuser''',
   audit_trail        =>  DBMS_FGA.DB);
END;
/

Ja, Ihr ursprünglicher Befehl sollte DELETE-Operationen (nicht DROP) für diesen Benutzer in allen Tabellen überwachen. Untersuchen Sie show parameter audit