Oracle DB Audit ALL

时间:2017-07-14 14:06:59

标签: oracle audit

我有一个5TB大型数据库。

我想审核一切,真的是一切。

首先,我尝试使用AUDIT ALL,但根据Oracle's document AUDIT ALL does NOT audit everything ...

我知道必须执行此语句才能开始审核db:

 alter system set audit_trail=db,extended scope=spfile;

但是我还应该做些什么来开始审核用户执行的所有SQL语句?

1 个答案:

答案 0 :(得分:0)

如果您只想查看数据库上的用户查询(SELECTUPDATEINSERT),则无需使用AUDIT功能。 $AUD包含 DDL语句 ,而V$SQL仅包含 DML语句 。< / p>

一个非常简单的解决方案是使用另一个视图: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列出了没有SQL子句的共享GROUP BY区域的统计信息,并为输入的原始SQL文本的每个子项包含一行。 V$SQL中显示的统计信息通常在查询执行结束时更新。

长时间运行的查询每5秒更新一次。这显示了长时间运行的SQL在它们仍在工作时的影响。