Oracle如何审计commited与rollbacked操作?

业务方要求审计的时候需要把DML操作是提交了还是回滚了也记录下来,测试开DML的标准审计并不能做到。SR的回复是应该开到 audit all statements 级别,当然如果要审计的用户执行语句非常多,这种审计对性能应该可能较大并且会产生大量审计日志。

与业务方沟通他们要审计的用户不是业务用户,只会有时执行一些修数据的操作,量很小,可以开启。

审计开法应该是:

SQL> audit all statements by hr by access; 
Audit succeeded.

SQL> audit update table, insert table, delete table by hr by access; 

Audit succeeded.

SQL>connect hr/hr;

-- performed insert,update,commit,rollback on hr.employees table.

SQL> select action,SQL_TEXT,ACTION_NAME,OBJ_NAME from dba_audit_trail;

ACTION SQL_TEXT ACTION_NAME OBJ_NAME
---------- -------------------------------------------------- ---------------------------- --------------------
3 SELECT DECODE('A','A','1','2') FROM DUAL SELECT DUAL
44 COMMIT
44 COMMIT
2 insert into hr.employees values('p',30) INSERT EMPLOYEES
44 commit COMMIT
6 update hr.employees set country='g' where age=30 UPDATE EMPLOYEES
45 rollback ROLLBACK
3 select count(*) from sys.aud$ SELECT AUD$

参考

https://blog.csdn.net/Hehuyi_In/article/details/90044964

发布了303 篇原创文章 · 获赞 36 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Hehuyi_In/article/details/105462551