Oracle &引用;审核“按会话创建会话”;vs.“;审核按访问创建会话“;?

Oracle &引用;审核“按会话创建会话”;vs.“;审核按访问创建会话“;?,oracle,audit,auditing,audit-tables,Oracle,Audit,Auditing,Audit Tables,当我通过以下方式为创建会话启用审核时: audit create session by session; audit create session by access; 那么我质疑的是: select * from dba_priv_audit_opts; select * from dba_priv_audit_opts; 结果是: USERNAME | PROXY_NAME | AUDIT_OPTION | SUCCESS | FAILURE | ............

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

audit create session by session;
 audit create session by access;
那么我质疑的是:

select * from dba_priv_audit_opts;
select * from dba_priv_audit_opts;
结果是:

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|
但是,当我通过以下方式为创建会话启用审核时:

audit create session by session;
 audit create session by access;
那么我质疑的是:

select * from dba_priv_audit_opts;
select * from dba_priv_audit_opts;
结果是一样的:

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

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

11gR2及以上:

已有效禁用,并且每次访问都会执行所有审核

11gR1及以下:

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

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

如果指定用于审核数据定义语言(DDL)语句的语句选项或系统权限,则无论指定的是by SESSION子句还是by access子句,数据库都会自动按access进行审核

因为
CREATE SESSION
是一条DDL语句,所以Oracle通过access审核该语句