审计截断和删除

问题描述 投票:0回答:1

我想捕获一张表上的 truncate 和 drop 语句。

在一些谷歌搜索中我发现它不可能执行:

audit truncate, drop on schema.table;

所以我尝试了:

audit table;

据我了解,这应该捕获所有表的创建、删除和截断。

所以,我的问题:

  1. 这真的是最好的方法吗?我只想要一张特定的桌子。
  2. 即使使用该语句 - 在我对表执行截断后,它也不会被捕获。

DBA_AUDIT_TRAIL

保持没有数据..

非常感谢。

oracle truncate audit
1个回答
0
投票

是的,您可以审核特定表上的 DROP TABLE 和 TRUNCATE TABLE。

这是我的audit_trail参数及其值。

SQL> conn / as sysdba
SQL> show parameter audit

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest              string  /u01/app/oracle/admin/orcl/adu
                         mp
audit_sys_operations             boolean     TRUE
audit_syslog_level           string
audit_trail              string  DB, EXTENDED
unified_audit_sga_queue_size         integer     1048576

我创建了名为 tbl1 的表。

SQL> conn jay
Password:

Connected.
SQL> create table tbl1(id number);

Table created.

现在,让我们对该表启用审核。如果您在表上指定

ALL
,则 Oracle 将审核
CREATE TABLE
DROP TABLE
TRUNCATE TABLE
操作。如果您希望 Oracle 为每个审计语句和操作写入一条记录,请指定
BY ACCESS

SQL> conn / as sysdba
SQL> audit all on jay.tbl1 by access; -- or  just audit all on jay.tbl1

Audit succeeded.

使用 Jay 用户创建新会话并执行一些操作。

SQL> conn jay

SQL> truncate table tbl1; 

Table truncated.

SQL> drop table tbl1;

Table dropped.

让我们检查一下审计跟踪。

SQL> conn / as sysdba

SQL> select action_name from dba_audit_trail where obj_name='TBL1';

ACTION_NAME
----------------------------
DROP TABLE
TRUNCATE Table 
© www.soinside.com 2019 - 2024. All rights reserved.