重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 261|回复: 0
打印 上一主题 下一主题

[Oracle] Oracle 19c 审计机制变化:从 DBA_AUDIT_SESSION 到统一审计

[复制链接]
跳转到指定楼层
楼主
发表于 5 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在数据库管理领域,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 的审计功能,保障数据库的安全和稳定运行。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2025-2-21 23:05 , Processed in 0.080249 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表