[英]Oracle DB Audit ALL
我有一个5TB的大型数据库。
我想审核所有内容,实际上是所有内容。
首先,我尝试使用AUDIT ALL
,但是根据Oracle的文档AUDIT ALL does NOT
审核所有内容 ...
我知道必须执行此语句才能开始审核数据库:
alter system set audit_trail=db,extended scope=spfile;
但是,我应该怎么做才能开始审核用户执行的所有SQL语句?
如果只想查看数据库中的用户查询( SELECT
, UPDATE
, INSERT
),则不需要使用AUDIT功能。 $AUD
包含DDL语句 ,而V$SQL
仅包含DML语句 。
一个非常简单的解决方案是使用另一个视图: V$SQL
。 您可以从中提取持续时间和许多有用的信息。
有用的例子:
SELECT * FROM v$sql vv
WHERE lower(vv.SQL_TEXT) like '%delete%'
AND vv.PARSING_SCHEMA_NAME like 'A_SCHEMA%'
ORDER BY vv.LAST_ACTIVE_TIME desc;
V$SQL
列出不具有GROUP BY
子句的共享SQL
区域的统计信息,并为输入的原始SQL文本的每个子项包含一行。V$SQL
中显示的统计信息通常在查询执行结束时进行更新。
长时间运行的查询每5秒更新一次。 这显示了长时间运行的SQL仍在起作用的影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.