【问题标题】:How to audit deletes in a certain table with Oracle?如何使用 Oracle 审计某个表中的删除?
【发布时间】:2012-01-05 04:55:10
【问题描述】:

我正在尝试使用 Oracle 的审计功能在某个表中记录 DELETE 语句。我跑了:

SQL> AUDIT DELETE TABLE BY TPMDBO BY ACCESS;

Audit succeeded.

我不清楚这是否审核了表模式本身的删除(即删除表),或者它是否审核了任何表中一个或多个行的删除(即删除命令)。如果是后者,我如何将此审核限制为仅名为 Foo 的表?谢谢!

更新:

SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------
audit_file_dest                      string      /backup/audit
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      XML, EXTENDED

【问题讨论】:

    标签: oracle oracle11g


    【解决方案1】:

    有一个称为细粒度审计 (FGA) 的新功能,它将日志存储在 SYS.FGA_LOG$ 而不是 SYS.AUD$ 中。这是FGA manual

    BEGIN
      DBMS_FGA.ADD_POLICY(
       object_schema      => 'HR',
       object_name        => 'FOO',
       policy_name        => 'my_policy',
       policy_owner       => 'SEC_MGR',
       enable             =>  TRUE,
       statement_types    => 'DELETE',
       audit_condition    =>  'USER = ''myuser''',
       audit_trail        =>  DBMS_FGA.DB);
    END;
    /
    

    是的,您的原始命令应该审核该用户在所有表上的 DELETE 操作(而不是 DROP)。检查show parameter audit

    【讨论】:

    • 那么使用我上面的AUDIT 命令,是否只有审核架构更改?这可以解释为什么我在审计线索中什么也没看到。
    • 是的,您的原始命令应该审核该用户在所有表上的 DELETE 操作(而不是 DROP)。检查show parameter audit
    • 已添加,谢谢!我实际上已经解决了行数消失的谜团,但我仍然想了解如何为我自己的个人发展进行审计:)
    猜你喜欢
    • 2014-10-29
    • 2011-02-16
    • 1970-01-01
    • 2016-11-06
    • 2012-08-13
    • 2011-02-16
    • 2018-10-24
    • 2023-03-14
    • 2020-03-09
    相关资源
    最近更新 更多