"audit create session by session"和"audit create session by access"有什么区别?(涉及IT技术)

5
当我按照以下方式启用创建会话的审计时:
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个回答

6

11gR2和更高版本:

按会话 已被有效禁用,所有审计都是按照访问进行的。

11gR1及以下版本:

按会话按访问 的区别在于,当你指定 按会话 时,Oracle会尝试将多个与会话和审计操作匹配的审计条目合并为一条记录。

这仅适用于除DDL之外的SQL语句。从上面的链接中可以看到:

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

由于 CREATE SESSION 是一个DDL语句,因此Oracle通过访问审计此语句。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接