思维导图:
4.4 审计理解笔记:
1. 审计的重要性:
- 除了用户身份验证和访问控制,审计是实现数据库安全的关键组成部分。
- 审计是达到高安全标准(如TDI/TCSEC的C2级别)的必要功能。
2. 审计功能的核心:
- 自动记录用户对数据库的所有操作,并存储在审计日志中。
- 通过审计日志,审计员可以监控数据库行为,重现事件序列,并确定非法访问的具体细节。
- 提前识别并防范潜在威胁。
3. 审计的开销与选择性:
- 考虑到审计的时间和空间成本,审计通常是可选功能。
- 适用于对安全性有高要求的部门。
4. 审计事件的分类:
- 服务器事件:例如数据库服务器的启动、停止等。
- 系统权限:需要系统权限进行的操作。
- 语句事件:对SQL语句的审计。
- 模式对象事件:对特定模式对象(如表、视图)的操作审计。
5. 审计功能概述:
- 提供多种审计查阅方式和多套审计规则。
- 审计分析、报表和日志管理功能。
- 系统为审计设置和记录提供专门视图。
6. AUDIT与NOAUDIT语句:
AUDIT
用于设置审计功能。NOAUDIT
用于取消审计功能。
7. 用户级与系统级审计:
- 用户级审计:用户自行针对其创建的数据库对象进行审计。
- 系统级审计:由管理员设置,关注数据库级别的操作。
8. 例子解析:
- 例4.15:对SC表结构的修改或数据更新进行审计。
- 例4.16:取消对SC表的所有审计。
9. 存储与开关:
- 审计设置和日志存储在数据字典中。
- 仅当系统参数
audit_trail
设置为true
时,审计信息才可在SYS_AUDITTRAIL
中查看。
10. 审计的目的:
- 提供后期检查的安全机制。
- 作为查询分析和追踪操作的基础。
- 约束可能的恶意操作。
结论: 审计是数据库安全的重要层面,它提供了一种事后检查机制,以确保数据的完整性和保密性。通过有效的审计机制,可以追踪、分析并预防恶意或不当的数据库访问和操作。
我的理解:
-
审计的核心:审计是数据库安全机制的一个重要组成部分,主要是为了记录用户对数据库的所有操作,并存储这些记录,以便后续监控、分析和复查。
-
为什么需要审计:
- 身份验证和访问控制不足以确保数据库的完全安全性。
- 审计帮助检测潜在的威胁和非法访问。
- 审计满足某些安全标准和规范的要求。
-
审计事件的种类:
- 服务器事件:关于数据库服务器操作的记录。
- 系统权限:关于权限操作的记录。
- 语句事件:关于SQL指令的记录。
- 模式对象事件:关于数据库结构(如表、视图)的操作记录。
-
审计的功能和工具:
- 多种审计查阅方式和规则,使审计更为灵活。
- 提供分析、报告和日志管理工具。
- 系统专门为审计提供视图和查询方式。
-
审计的实施:
- 使用
AUDIT
和NOAUDIT
语句来启用或禁用审计功能。 - 用户级审计:由普通用户针对其数据库对象设置。
- 系统级审计:由管理员设置,用于监视数据库层面的操作。
- 使用
-
审计的存储:审计设置和记录通常存放在数据字典中,需要特定参数才能查看。
-
审计的目的和意义:审计不仅为管理员提供了对数据库操作的透明度,还作为一个安全机制,防止恶意或不当操作,确保数据的完整性和保密性。
结论:审计是数据库安全策略的一个关键环节,它为数据库操作提供了透明度,同时允许管理员监控、分析并应对潜在的安全风险。
总结:
重点:
- 审计的目的:通过记录用户的所有数据库操作,为监控、分析和数据安全提供保障。
- 审计日志:存储用户对数据库操作的自动记录,帮助监控数据库行为并找出非法访问。
- 审计事件的类别:服务器事件、系统权限、语句事件和模式对象事件。
- AUDIT与NOAUDIT语句:用于设置和取消审计功能。
难点:
- 审计的细分:了解区分用户级审计和系统级审计的差异。
- 审计的开关与存储:掌握如何启用审计、查看审计记录以及它们如何存储在数据字典中。
易错点:
- 审计的覆盖面:可能忽略某些重要事件的审计,如仅审计成功的操作而忽略失败的尝试。
- 误解AUDIT与NOAUDIT:可能混淆这两者的功能,即设置审计和取消审计。
- 审计日志管理:可能未注意审计日志的完整性、保密性,以及删除前的转储等关键细节。