我已将audit_sys_operations
设置为true,audit_trail
是DB,EXTENDED。现在我有一个帐号名称admin
谁拥有DBA privilige。我使用AUDIT CREATE ANY TABLE BY ADMIN
,但select * from SYS.AUD$
只显示管理员创建一个新表,即使管理员创建了几个表;
我可以查看具有DBA权限的用户的审计记录吗?
我已将audit_sys_operations
设置为true,audit_trail
是DB,EXTENDED。现在我有一个帐号名称admin
谁拥有DBA privilige。我使用AUDIT CREATE ANY TABLE BY ADMIN
,但select * from SYS.AUD$
只显示管理员创建一个新表,即使管理员创建了几个表;
我可以查看具有DBA权限的用户的审计记录吗?
如果您想审核SYS的功能,您需要将AUDIT_SYS_OPERATIONS参数设置为TRUE,您已经完成了这项工作。但出于安全原因,SYS操作不会写入SYS.AUD $。由于SYS可以从AUD $表中删除行,因此必须将SYS审计线索写入文件系统(在这种情况下,大概可以配置文件权限,以便DBA无法修改审计线索)。
那么,我将在这里为未来的入门者做一个总结。
AUDIT_TRAIL = DB/TRUE使地方审计记录写入到 数据库审计线索(在SYS.AUD $表),全系统审计。不会写入表中的唯一审计数据是与SYSDBA活动有关的审计数据。
在SYS.AUD $正如我所设置AUDI_TRAIL,我可以看到审计活动
如前所述here:
AUDIT_SYS_OPERATIONS启用或禁用顶级的审计这些操作是用户在与SYSASM,连接时直接发出的SQL语句SYSBACKUP,SYSDBA,SYSDG,SYSKM或SYSOPER特权。 (从PL/SQL过程或函数内运行的SQL语句不被视为顶层)。审计记录写入操作系统的审计线索。如果AUDIT_TRAIL初始化参数设置为xml或xml(扩展),则审计记录将以XML格式写入。
既然我已经设置audit_sys_operations
到true
,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的工作原理。
系统审计记录存储在文件系统中。文档链接http://docs.oracle。com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG94425 – JSapkota
@JSapkota似乎因为我将audit_trail设置为DB,扩展名,它不会将SYSDBA路径记录为XML。我检查'.aud'文件,我不明白它的含义。 –
对于xml,您可以将AUDIT_TRAIL初始化参数设置为XML或XML,EXTENDED。 – JSapkota