业务方要求审计的时候需要把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$
参考