架构概述
审计始终关注问责制,进行审计通常是为了保护数据库中存储的信息的隐私。随着数据库在企业中和互联网上的普遍使用,对隐私政策和做法的担忧也在持续增加。Oracle Database 提供了深度审计,让系统管理员能够实施增强的保护措施,及时发现可疑活动,做出精心优化的安全应对。
有条件的统一审计
Oracle Database 12c 统一审计功能利用策略和条件在 Oracle 数据库内部有选择地执行有效的审计。新的基于策略的语法简化了数据库中的审计管理,并且能够基于条件加速审计。例如,审计策略可配置为根据特定 IP 地址、程序、时间段或连接类型(如代理身份验证)进行审计。此外,启用审计策略时,还可以轻松地将特定模式排除在审计之外。
引入了新的角色来管理策略和查看审计数据。AUDIT_ADMIN 和 AUDIT_VIEWER 角色为希望指定特定用户管理审计设置和查看审计活动的组织提供了职责分离和灵活性。新架构将现有审计跟踪统一为单一审计跟踪,从而简化了管理,提高了数据库生成的审计数据的安全性。只能使用数据库内置的审计数据管理软件包来管理数据,不能使用 SQL 命令直接更新或删除审计数据。Oracle Database 12c 附带了 3 个配置好的默认策略。Oracle Audit Vault and Database Firewall 12.1.1 与新的 Oracle Database 12c 统一审计集成以实现审计整合。有关 Oracle 数据库审计的更多详细信息,请参阅 Oracle 文档。
传统数据库审计
Oracle 数据库在其标准版和企业版数据库中均提供了强健的审计支持。审计记录包括有关已审计的操作、执行操作的用户以及操作的时间和日期的信息。审计记录可以存储在数据库审计跟踪中或操作系统上的文件中。标准审计包括有关权限、模式、对象和语句的操作。
Oracle 建议将审计跟踪写入到操作系统文件中,这是因为这种配置在源数据库系统上造成的开销较小。要启用数据库审计,应将初始化参数 AUDIT_TRAIL 设置为以下任一值:
AUDIT_TRAIL 设置
参数值 | 含义 |
DB | 启用数据库审计并将所有审计记录指向数据库审计跟踪 (SYS.AUD$) 中,始终写入到操作系统审计跟踪的记录除外 |
DB,EXTENDED | 完成 AUDIT_TRAIL=DB 的全部操作并填充 SYS.AUD$ 表的 SQL 绑定和 SQL 文本列 |
XML | 启用数据库审计并将所有审计记录以 XML 格式指向一个操作系统文件 |
XML,EXTENDED | 完成 AUDIT_TRAIL=XML 的全部操作,添加 SQL 绑定和 SQL 文本列 |
OS(推荐) | 启用数据库审计并将所有审计记录指向一个操作系统文件 |
此外,还应设置以下数据库参数:
- init.ora 参数:AUDIT_FILE_DEST — 指定操作系统审计跟踪位置的动态参数。Unix/Linux 上的默认位置为 $ORACLE_BASE/admin/$ORACLE_SID/adump。Windows 上默认为事件日志。为获得更好的性能,它应当引用磁盘上的一个目录,该目录在本地附加到运行 Oracle 实例的主机上。
- init.ora 参数:AUDIT_SYS_OPERATIONS — 启用对用户 SYS 以及使用 SYSDBA、SYSOPER、SYSASM、SYSBACKUP、SYSKM 和 SYSDG 权限进行连接的用户发出的操作的审计。审计跟踪数据写入到操作系统审计跟踪中。该参数应当设为 true。
有关 Oracle 数据库审计的更多信息和优秀实践,请阅读 Oracle Audit Vault OTN 页面上的优秀实践白皮书。有关数据库审计的详细信息,见介绍性的 Oracle 数据库两日速成和安全性指南以及 Oracle 数据库安全性指南。
false ,,,,,,,,,,,,,,,,