我用下面的命令对一个表进行审计:
AUDIT SELECT, INSERT, UPDATE, DELETE ON MyTable BY ACCESS
对MyTable进行一些操作后,看到在DBA_AUDIT_OBJECT和DBA_AUDIT_TRAIL视图中记录了操作时间和ACTION等,但DBA_AUDIT_STATEMENT视图却是空的。
请问我如果才能审计到SQL语句的具体内容呢,形如:
SELECT * FROM XXX WHERE A=2
这样的。
如果审计做不到,是不是就只能做触发器了?那样会很痛苦的,一千多个表啊~~~各位大侠快帮忙啊!
---------------------------------------------------------------
这个问题很有意思,
我用audit user等,
想审计当前用户的信息,
却不可以。
aud$表为空,是不是初始化参数中有什么没有设置。
如果你做出来告诉我好吗?
---------------------------------------------------------------
这个问题你应该问斑竹或弱水三千
---------------------------------------------------------------
本人已经解决啦:
1、修改初始化参数文件:
sql92_security=TRUE
audit_trail=TRUE
2、重启数据库
AUDIT SELECT, INSERT, UPDATE, DELETE ON MyTable BY ACCESS
查dba_audit_object等数据已经存在
---------------------------------------------------------------
除了audit,你还可以用数据库触发器,logmnr来得到。
audit和数据库触发器都是以数据库性能作代价的
logmnr却可以在事后分析dml语句,(不能是ddl)
---------------------------------------------------------------
sql92_security=TRUE
这个参数是干什么用的?