Oracle 标准审计功能及开启

来源:这里教程网 时间:2026-03-03 19:00:20 作者:

Oracle标准数据库审计概念和概述

    数据库审计是记录、监视和报告在数据库上执行的操作的过程。它允许维护人员观察数据库用户是否根据已建立的策略使用数据库,以及是否存在违反策略的情况。数据库审计有助于分析数据库活动模式/趋势,并有助于收集关于特定数据库用户或活动的历史数据。     可以使用标准审计来审计SQL语句、特权、模式、对象、网络和多层活动。此外,可以使用细粒度审计(仅在Enterprise Edition中可用)根据复杂的审计条件监视对象上的特定数据库活动,例如这些活动发生的时间或特定用户。FGA非常灵活,因为audit_condition可以引用带有扩展逻辑的PL/SQL函数来控制是否生成审计记录。 使用审计的原因包括:

    1.使未来对当前行动负责

    2.根据用户的责任阻止用户(或其他人,如入侵者)进行不适当的操作

    3.调查、监控和记录可疑活动

    4.处理合规性的审计需求

什么内容审计不能提供(可以确定审计能做什么):     审计无法展现关于特定SQL语句返回多少行或哪些特定数据的问题。此外,COMMIT和ROLLBACK语句不被审计,这意味着即使审计跟踪中记录了特定的DML语句,也不能保证它会导致任何数据库更改(因为SYS审计只是记录所有内容,这将是例外),对于此类需求,请考虑使用其他功能,如Flashback Data Archive。 安装Oracle数据库审计 默认情况下,数据库标准审计是所有数据库版本中可用的功能。 Oracle数据库审计配置和管理

要使用审计,必须首先启用它,然后精确定义必须审计的内容。被审计的操作记录在SYS。AUD$表或在操作系统文件中。 启用标准审计 通过将AUDIT_TRAIL参数设置为不同于NONE的值,然后重新启动数据库,可以启用审计。下表给出了AUDIT_TRAIL参数所有可能的合法值: 如上表所示,审计数据发送到的位置由AUDIT_TRAIL参数控制。当该参数设置为OS、XML或XML_EXTENDED时,审计数据的确切位置由AUDIT_FILE_DEST和AUDIT_SYSLOG_LEVEL控制。其他影响审计数据确切位置的因素有: -数据库的状态(启动或关闭)

-运行审计事件的用户是否是特权用户。对于特权用户,当audit_trail为DB或DB, EXTENDED时,我们有两种可能的情况:

a)如果audit_syslog_level参数为空,特权用户会话生成的审计数据将进入audit_file_dest参数指定的目录。

b)如果audit_syslog_level有一个值,在这种情况下,为特权用户会话生成的审计数据将进入syslog.conf文件中audit_syslog_level参数指定的位置。 下表显示了使用这些参数/因素的不同组合时会发生什么: 注意: 无论数据库审计是启用还是禁用,Oracle都会将某些数据库操作审计到操作系统审计跟踪中。没有办法改变这种行为,因为这是安全评估标准的正式要求。详情见mos 308066.1

请注意,当数据库关闭时,SYSDBA操作将被记录到一个默认位置。在Unix上,第一个默认位置是$ORACLE_BASE/admin/ORACLE_SID/adump。如果第一个默认位置不可用,那么数据库将尝试将审计记录写入$ORACLE_HOME/rdbms/audit。在Windows上,默认位置是“事件日志”。原因是当数据库关闭时,AUDIT_FILE_DEST的值是未知的,因此我们将强制审计记录写入默认位置。 要了解有关使用AUDIT_SYSLOG_LEVEL参数的更多信息,请参见MOS 553225.1。 参考文档:MOS 1299033.1'https://www.oracle.com/cn/database/technologies/security/db-auditing.html'

相关推荐