Звучит так, будто вы после «одитинга». Oracle имеет встроенную функцию, называемую Fine Grain Auditing (FGA). В двух словах вы можете проверить все или конкретные условия. Что действительно круто, так это то, что вы можете «проверять» выбор и транзакции. Простая команда для начала аудита:
audit UPDATE on SCOTT.EMP by access;
Думайте об этом как о «триггере» для операторов выбора. Например, вы создаете политики:
begin
dbms_fga.add_policy (
object_schema=>'BANK',
object_name=>'ACCOUNTS',
policy_name=>'ACCOUNTS_ACCESS'
);
end;
После того, как вы определили политику, когда пользователь запрашивает таблицу обычным способом, следующим образом:
select * from bank.accounts;
контрольный журнал записывает это действие. Вы можете увидеть след, выдав:
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