oracle - "audit create session by session"与 "audit create session by access"?

标签 oracle audit auditing audit-tables

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

audit create session by session;

然后我查询以下内容:

select * from dba_priv_audit_opts;

结果是:

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

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

 audit create session by access;

然后我查询以下内容:

select * from dba_priv_audit_opts;

结果是一样的:

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|
为什么?你有什么想法吗?

最佳答案

11gR2 及以上:

BY SESSION已被有效禁用,并且所有审核均在每次访问时完成。

11gR1 及以下:

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

它仅适用于除 DDL 之外的 SQL 语句,来自上面的链接:

If you specify statement options or system privileges that audit data definition language (DDL) statements, then the database automatically audits by access regardless of whether you specify the BY SESSION clause or BY ACCESS clause.

由于CREATE SESSION是一条DDL语句,Oracle通过访问来审核该语句。

关于oracle - "audit create session by session"与 "audit create session by access"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4942672/

相关文章:

apache - 为什么 Lighthouse 使我的缓存文件失败?

oracle - 如何使用动态列取消透视 Oracle

oracle - 为什么 Grails 自动时间戳字段在 Oracle 中不能始终如一地工作?

java - Oracle 和 HIbernate,数据库序列生成器问题

oracle - 如何在Oracle中将临时表转换为永久表,反之亦然

security - 一次审核业务线应用程序的安全事件是什么?

java - 有效的审计方式

javascript - 谷歌审计问题

linux - 如何从 Linux 查询 Windows 注册表项?

azure - Start-ComplianceSearch 上的 TaskCanceledException