事先打开审计功能或者在表上建立触发器。事后可以通过logmnr查看。 用触发器
create or replace trigger tri_test after insert on tb -->判断此表是否被插入记录 for each row begin insert into ta(日期) values(sysdate) ; commit; end ; 建立表级触发器是个好办法,能够跟踪到更多的信息.可以在应用程序中嵌入包DBMS_APPLICATION_INFO,利用DBMS_APPLICATION_INFO.SET_CLIENT_INFO设置CLIENT_INFO信息,然后在trigger中用DBMS_APPLICATION_INFO.READ_CLIENT_INFO得到其设置的信息,可以判断是不是应用程序插入了数据。 用数据库审计即可,
先设置audit_trail参数,决定审计结果保存地点; 然后执行audit insert on schema.table_name whenever successful; 这样就行了,在有人做insert操作后,根据audit_trail参数到相应位置去看审计结果就行了。 建触发器其实也是审计,是基于值的审计,比数据库审计慢,不过审计的内容可以更详细。 你的需求上面我说的3种方法都能实现。 如果是用触发器来审计,要用自主事务。
|
|