【问题标题】:Oracle DB Audit ALLOracle 数据库审计全部
【发布时间】:2017-12-19 16:12:59
【问题描述】:

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

我想审核所有内容,真的是所有内容。

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

我知道必须执行这条语句才能开始审计db:

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

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

【问题讨论】:

    标签: oracle audit


    【解决方案1】:

    如果您只想查看数据库上的用户查询(SELECTUPDATEINSERT),则无需使用 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 在它们仍在工作时的影响。

    【讨论】:

    • 那么在视图 V$SQL 和 $AUD 表中存储的 beetwen 记录基本上没有区别?除非我对审核会话(连接时间等)感兴趣,但我对此并不感兴趣。
    • 这不是我要说的。出于您的目的,您可以查看V$SQL 中的内容。它是不同的。 $AUD 将包含 DDL 语句,而 V$SQL 将包含 DML 语句
    猜你喜欢
    • 2012-05-30
    • 2020-08-06
    • 2010-12-14
    • 2017-08-25
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2011-02-16
    相关资源
    最近更新 更多