2016-05-13 124 views
2

我已将audit_sys_operations设置为true,audit_trail是DB,EXTENDED。现在我有一个帐号名称admin谁拥有DBA privilige。我使用AUDIT CREATE ANY TABLE BY ADMIN,但select * from SYS.AUD$只显示管理员创建一个新表,即使管理员创建了几个表;

我可以查看具有DBA权限的用户的审计记录吗?

+0

系统审计记录存储在文件系统中。文档链接http://docs.oracle。com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG94425 – JSapkota

+0

@JSapkota似乎因为我将audit_trail设置为DB,扩展名,它不会将SYSDBA路径记录为XML。我检查'.aud'文件,我不明白它的含义。 –

+0

对于xml,您可以将AUDIT_TRAIL初始化参数设置为XML或XML,EXTENDED。 – JSapkota

回答

0

如果您想审核SYS的功能,您需要将AUDIT_SYS_OPERATIONS参数设置为TRUE,您已经完成了这项工作。但出于安全原因,SYS操作不会写入SYS.AUD $。由于SYS可以从AUD $表中删除行,因此必须将SYS审计线索写入文件系统(在这种情况下,大概可以配置文件权限,以便DBA无法修改审计线索)。

1

那么,我将在这里为未来的入门者做一个总结。

AUDIT_TRAIL = DB/TRUE使地方审计记录写入到 数据库审计线索(在SYS.AUD $表),全系统审计。不会写入表中的唯一审计数据是与SYSDBA活动有关的审计数据。

SYS.AUD $正如我所设置AUDI_TRAIL,我可以看到审计活动

如前所述here

AUDIT_SYS_OPERATIONS启用或禁用顶级的审计这些操作是用户在与SYSASM,连接时直接发出的SQL语句SYSBACKUPSYSDBA,SYSDG,SYSKMSYSOPER特权。 (从PL/SQL过程或函数内运行的SQL语句不被视为顶层)。审计记录写入操作系统的审计线索。如果AUDIT_TRAIL初始化参数设置为xml或xml(扩展),则审计记录将以XML格式写入。

既然我已经设置audit_sys_operationstrue,oracle会审计SYSDBA活动,但记录不会SYS.AUD $显示出来,它会在(在我的情况/u01/app/oracle/admin/orcl/adump)。

但要小心,不要查找错误的审计日志文件。活动记录包含在文件中,如orcl_ora_6225_20160513082219532252143795.aud 。我分享它的一些内容如下:

ACTION :[14] 'drop table foo' 
DATABASE USER:[1] '/' 
PRIVILEGE :[6] 'SYSDBA' 
CLIENT USER:[6] 'oracle' 
CLIENT TERMINAL:[5] 'pts/3' 
STATUS:[3] '942' 
DBID:[10] '1439309578' 

Fri May 13 08:00:17 2016 -07:00 
LENGTH : '205' 
ACTION :[51] 'CREATE TABLE FOO(
     FOO1 INTEGER, 
     BAR VARCHAR(10) 
)' 
DATABASE USER:[1] '/' 
PRIVILEGE :[6] 'SYSDBA' 
CLIENT USER:[6] 'oracle' 
CLIENT TERMINAL:[5] 'pts/3' 
STATUS:[1] '0' 
DBID:[10] '1439309578' 

你可以看到,我用了一个帐户SYSDBA privilige删除表名为foo并重新创建它。括号中的数字是值的长度。

这就是审计SYSDBA的工作原理。

相关问题