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审核该语句