重庆思庄Oracle、Redhat认证学习论坛
标题:
Oracle 19c 审计机制变化:从 DBA_AUDIT_SESSION 到统一审计
[打印本页]
作者:
mahan
时间:
6 天前
标题:
Oracle 19c 审计机制变化:从 DBA_AUDIT_SESSION 到统一审计
在数据库管理领域,Oracle 一直处于行业领先地位,不断对其功能进行升级和优化。其中,审计机制的改进是一个重要的方面。在 Oracle 19c 中,视图DBA_AUDIT_SESSION的行为和可用性相较于 11g 发生了显著变化,这主要是因为 Oracle 引入了统一审计(Unified Auditing)机制。本文将深入探讨这些变化背后的原因和影响,并提供相应的解决方案。
一、DBA_AUDIT_SESSION 在 19c 中的变化
传统审计的废弃
DBA_AUDIT_SESSION是传统审计(Traditional Auditing)的视图,它仅在未启用统一审计时才有效。从 Oracle 12c 开始,统一审计被引入,到了 19c,这一功能得到了进一步强化并被默认推荐使用。当统一审计启用后,审计数据不再写入传统审计表(如SYS.AUD$),而是存储在统一审计视图UNIFIED_AUDIT_TRAIL中。这意味着,传统的审计方式在新的 Oracle 版本中逐渐被淘汰,数据库管理员需要适应这种新的审计数据存储方式。
视图的兼容性
如果数据库未启用统一审计(例如通过手动关闭),DBA_AUDIT_SESSION仍可显示连接和断开记录。然而,一旦启用了统一审计,该视图将为空。这是因为所有的审计数据都迁移到了新的统一审计框架中,传统视图无法再获取到最新的审计信息。这就要求管理员在使用DBA_AUDIT_SESSION视图时,首先要确认当前数据库的审计模式。
二、11g 与 19c 默认设置下的差异
Oracle 11g 的默认审计行为
在 11g 中,默认使用传统审计。此时,参数audit_trail设置为DB,审计记录会存储在SYS.AUD$表中。这使得DBA_AUDIT_SESSION可以直接查询到登录 / 登出记录,管理员可以方便地通过这个视图监控数据库的连接情况。
Oracle 19c 的默认审计行为
在 19c 中,统一审计可能默认启用(具体取决于安装选项)。一旦启用,所有的审计记录(包括连接事件)都会写入UNIFIED_AUDIT_TRAIL视图。而传统审计表(如SYS.AUD$)将不再更新,这直接导致DBA_AUDIT_SESSION无法显示数据。这种默认设置的变化,可能会让习惯了 11g 审计方式的管理员在 19c 中找不到登录记录。
三、为什么 19c 默认情况下可能看不到登录记录?
统一审计的启用
如果数据库在安装时选择启用统一审计,或者通过参数unified_auditing设置为TRUE,那么传统审计视图(如DBA_AUDIT_SESSION)将不再有效。此时,需要通过UNIFIED_AUDIT_TRAIL视图来查询登录记录。管理员需要及时了解这种变化,避免在查看登录记录时出现困惑。
审计策略的差异
统一审计要求显式定义审计策略(Audit Policy)。例如,要捕获CONNECT和DISCONNECT事件,就需要创建相应的策略。否则,即使启用了统一审计,也可能会遗漏相关记录。这就要求管理员在使用统一审计时,要仔细配置审计策略,确保能够获取到所需的审计信息。
四、解决方案:如何在 19c 中查看登录记录?
检查统一审计状态
可以使用以下 SQL 语句检查统一审计是否启用:
SELECT value FROM v$option WHERE
parameter
=
'Unified Auditing'
;
如果返回TRUE,则说明统一审计已启用。
查询统一审计视图
启用统一审计后,需要使用UNIFIED_AUDIT_TRAIL视图来查询登录记录。可以使用以下 SQL 语句按条件筛选登录事件:
SELECT event_timestamp, dbusername, action_name
;
FROM unified_audit_trail
;
WHERE action_name IN (
'LOGON'
,
'LOGOFF'
)
;
创建或调整审计策略
如果需要记录连接事件,就需要创建审计策略。可以使用以下 SQL 语句创建并应用审计策略:
CREATE AUDIT POLICY logon_policy ACTIONS LOGON
;
AUDIT POLICY logon_policy
;
五、传统审计与统一审计的迁移
从传统审计迁移
如果需要继续使用传统审计,就需要禁用统一审计。不过,这需要重新编译数据库并重启,操作较为复杂。而且,Oracle 官方建议逐步迁移到统一审计框架,以充分利用新审计机制的优势。
性能与管理优化
统一审计通过策略化配置减少了冗余审计记录,支持更细粒度的控制(如仅审计顶级语句),同时减少了SYSTEM表空间的占用问题。这使得数据库的性能和管理效率都得到了提升,也是推荐使用统一审计的重要原因。
六、总结
19c 的变化本质
Oracle 19c 通过统一审计重构了审计机制,传统审计组件(如DBA_AUDIT_SESSION)仅在未启用新框架时才有效。这种变化要求数据库管理员及时更新知识,适应新的审计方式。
默认无数据的根本原因
统一审计的启用导致传统审计表不再更新,因此需要通过UNIFIED_AUDIT_TRAIL和策略配置来获取登录记录。管理员在使用 19c 时,要特别注意这些变化,确保能够有效地进行审计工作。
通过以上分析,我们可以看到 Oracle 19c 的统一审计机制虽然带来了一些变化,但也为数据库审计提供了更强大、更灵活的功能。只要我们掌握了这些变化,就能更好地利用 Oracle 19c 的审计功能,保障数据库的安全和稳定运行。
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2