“审核按会话创建会话”与“审核按访问创建会话”?

时间:2011-02-09 08:24:13

标签: oracle audit auditing audit-tables

通过以下方式启用创建会话的审核时:

audit create session by session;

然后我查询以下内容:

select * from dba_priv_audit_opts;

结果是:

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|

但是,当我通过以下方式为创建会话启用审核时:

 audit create session by access;

然后我查询以下内容:

select * from dba_priv_audit_opts;

结果是一样的:

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|

为什么呢?你有什么想法吗?

1 个答案:

答案 0 :(得分:6)

11gR2及以上:

BY SESSION被有效禁用,所有审核都是按访问完成的。

11gR1及以下:

BY SESSION and BY ACCESS之间的区别在于,当您指定BY SESSION时,当会话和审核的操作匹配时,Oracle会尝试将多个审核条目合并到一条记录中。

它仅适用于DDL以外的SQL语句,但从以上链接:

  

如果指定了审计数据定义语言(DDL)语句的语句选项或系统特权,则无论是否指定BY SESSION子句或BY ACCESS子句,数据库都会通过访问自动进行审计。

由于CREATE SESSION是DDL语句,因此Oracle会通过访问来审核此语句。