外观
DM 审计
审计的定义
审计是指对数据库的各种操作和事件进行记录和分析的过程,包括用户登录、SQL语句执行、权限变更、数据修改等。审计记录可以用于安全监控、合规检查、故障排查和责任追溯等。
审计的重要性
- 安全监控:监控数据库的各种操作和事件,及时发现异常行为
- 合规检查:满足等保、分级保护等合规要求
- 故障排查:帮助排查数据库故障和性能问题
- 责任追溯:发生安全事件时,可以追溯到具体的操作人和操作时间
- 风险评估:通过审计记录,评估数据库的安全风险
审计的范围
DM数据库的审计范围主要包括以下内容:
- 登录审计:用户登录和退出数据库的记录
- 权限审计:权限授予、收回和变更的记录
- 操作审计:SQL语句执行、数据修改等操作的记录
- 系统事件审计:数据库启动、关闭、备份等系统事件的记录
- 对象审计:表、视图、存储过程等数据库对象的操作记录
审计的类型
1. 系统审计
系统审计是指对数据库系统级别的事件进行审计,如数据库启动、关闭、备份、恢复等。
系统审计的内容
- 数据库启动和关闭
- 数据库备份和恢复
- 参数修改
- 系统资源使用情况
- 错误和告警事件
2. 语句审计
语句审计是指对特定类型的SQL语句进行审计,如SELECT、INSERT、UPDATE、DELETE等。
语句审计的内容
- SELECT语句
- INSERT语句
- UPDATE语句
- DELETE语句
- CREATE、ALTER、DROP等DDL语句
- GRANT、REVOKE等DCL语句
3. 对象审计
对象审计是指对特定数据库对象的操作进行审计,如表、视图、存储过程等。
对象审计的内容
- 表的插入、更新、删除操作
- 视图的查询操作
- 存储过程的执行
- 索引的创建和删除
- 触发器的执行
4. 权限审计
权限审计是指对用户权限的变更和使用进行审计。
权限审计的内容
- 权限的授予和收回
- 角色的创建和修改
- 用户密码的修改
- 权限的使用情况
审计的配置方法
1. 使用DM管理工具配置审计
DM管理工具提供了图形化的审计配置界面,可以方便地配置和管理审计功能。
配置步骤
- 启动DM管理工具
- 连接到数据库实例
- 选择"安全管理" -> "审计管理"选项
- 配置审计开关、审计规则、审计目标等
- 保存配置并生效
2. 使用SQL命令配置审计
可以使用SQL命令配置审计功能,包括启用审计开关、创建审计规则、配置审计目标等。
启用审计开关
sql
-- 启用审计开关
SP_SET_PARA_VALUE(2, 'AUDIT_SWITCH', 1);
-- 查看审计开关状态
SELECT NAME, VALUE FROM V$DM_INI WHERE NAME = 'AUDIT_SWITCH';创建审计规则
sql
-- 创建语句审计规则
CREATE AUDIT POLICY audit_select ON SELECT;
-- 创建对象审计规则
CREATE AUDIT POLICY audit_table ON TABLE hr.employees;
-- 创建权限审计规则
CREATE AUDIT POLICY audit_privilege ON GRANT, REVOKE;启用审计规则
sql
-- 启用审计规则
AUDIT POLICY audit_select;
AUDIT POLICY audit_table;
AUDIT POLICY audit_privilege;配置审计目标
sql
-- 配置审计文件路径
SP_SET_PARA_VALUE(2, 'AUDIT_FILE_PATH', '/dm/audit');
-- 配置审计文件大小
SP_SET_PARA_VALUE(2, 'AUDIT_FILE_SIZE', 1024);
-- 配置审计文件个数
SP_SET_PARA_VALUE(2, 'AUDIT_FILE_NUM', 10);3. 审计配置文件
DM数据库的审计配置主要存储在dm.ini文件中,通过修改dm.ini文件中的相关参数,可以配置审计功能。
审计相关参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| AUDIT_SWITCH | 是否启用审计功能 | 0 | 1 |
| AUDIT_FILE_PATH | 审计文件存储路径 | ./ | /dm/audit |
| AUDIT_FILE_SIZE | 单个审计文件大小(MB) | 100 | 1024 |
| AUDIT_FILE_NUM | 审计文件个数 | 10 | 10 |
| AUDIT_TRAIL | 审计记录的存储方式 | 0 | 1 |
| AUDIT_EXECUTE_SQL | 是否审计SQL语句执行 | 0 | 1 |
| AUDIT_LOGIN_FAILURE | 是否审计登录失败 | 0 | 1 |
审计记录的管理
1. 查看审计记录
可以通过SQL命令或DM管理工具查看审计记录。
使用SQL命令查看审计记录
sql
-- 查看审计记录
SELECT * FROM SYS.AUDIT$;
-- 查看登录审计记录
SELECT * FROM SYS.AUDIT$ WHERE ACTION_NAME = 'LOGON';
-- 查看SELECT语句审计记录
SELECT * FROM SYS.AUDIT$ WHERE ACTION_NAME = 'SELECT';
-- 按时间范围查询审计记录
SELECT * FROM SYS.AUDIT$ WHERE TIMESTAMP BETWEEN '2023-01-01 00:00:00' AND '2023-01-31 23:59:59';使用DM管理工具查看审计记录
- 启动DM管理工具
- 连接到数据库实例
- 选择"安全管理" -> "审计管理" -> "审计记录"选项
- 查看和筛选审计记录
2. 审计记录的备份和清理
定期备份和清理审计记录,确保审计功能的正常运行。
备份审计记录
sql
-- 将审计记录导出到文件
SELECT * FROM SYS.AUDIT$ INTO OUTFILE '/dm/audit/audit_backup.txt' FORMAT TEXT;清理审计记录
sql
-- 清理指定时间之前的审计记录
DELETE FROM SYS.AUDIT$ WHERE TIMESTAMP < '2023-01-01 00:00:00';
-- 清理所有审计记录
TRUNCATE TABLE SYS.AUDIT$;3. 审计记录的分析
通过分析审计记录,可以发现数据库的异常行为和安全风险。
审计记录分析的内容
- 登录失败次数过多的用户
- 频繁执行敏感操作的用户
- 异常时间的数据库访问
- 权限变更记录
- 大量数据修改操作
审计记录分析的方法
- 使用SQL语句分析审计记录
- 使用DM管理工具的审计分析功能
- 使用第三方日志分析工具
- 编写自定义审计分析脚本
审计的监控和维护
1. 审计状态监控
定期监控审计功能的状态,确保审计功能正常运行。
监控审计开关状态
sql
-- 查看审计开关状态
SELECT NAME, VALUE FROM V$DM_INI WHERE NAME = 'AUDIT_SWITCH';
-- 查看审计相关参数
SELECT NAME, VALUE FROM V$DM_INI WHERE NAME LIKE '%AUDIT%';监控审计文件
sql
-- 查看审计文件信息
SELECT * FROM V$AUDIT_FILE;
-- 查看审计文件大小
SELECT FILE_NAME, FILE_SIZE FROM V$AUDIT_FILE;2. 审计性能监控
审计功能会对数据库性能产生一定影响,需要定期监控审计对性能的影响。
监控审计对性能的影响
- 监控数据库的CPU使用率
- 监控数据库的I/O使用率
- 监控SQL语句的执行时间
- 监控审计记录的生成速率
优化审计性能
- 只审计必要的操作和事件
- 合理配置审计文件大小和个数
- 定期清理审计记录
- 优化审计规则,减少不必要的审计
3. 审计维护
定期对审计功能进行维护,确保审计功能的可靠性和性能。
日常维护
- 检查审计开关状态
- 查看审计日志
- 监控审计文件大小
- 备份和清理审计记录
定期维护
- 优化审计规则
- 更新审计配置
- 测试审计功能
- 培训管理和维护人员
审计的最佳实践
1. 审计策略制定
制定合理的审计策略,根据业务需求和合规要求确定审计范围和级别。
审计策略的内容
- 审计的范围和级别
- 审计规则的制定
- 审计记录的存储和管理
- 审计记录的分析和报告
- 审计的监控和维护
2. 最小审计原则
只审计必要的操作和事件,避免过度审计影响系统性能。
最小审计原则的实施
- 只审计敏感操作和事件
- 只审计敏感数据和对象
- 只审计敏感用户和权限
- 合理配置审计级别
3. 审计记录的安全管理
确保审计记录的安全性和完整性,防止审计记录被篡改或删除。
审计记录的安全措施
- 将审计文件存储在安全的位置
- 定期备份审计记录
- 限制审计记录的访问权限
- 对审计记录进行加密存储
- 配置审计记录的完整性检查
4. 定期审计分析
定期分析审计记录,及时发现和处理安全问题。
审计分析的频率
- 日常分析:每天查看审计记录,发现异常行为
- 定期分析:每周或每月进行一次全面的审计分析
- 事件分析:发生安全事件时,及时进行审计分析
5. 审计日志的备份和归档
定期备份和归档审计日志,满足合规要求和长期存储需求。
审计日志的备份策略
- 日常备份:每天备份一次审计日志
- 定期备份:每周或每月进行一次完整备份
- 归档备份:将审计日志归档到长期存储介质
- 异地备份:将审计日志备份到异地,防止本地灾难
常见问题(FAQ)
Q1: 如何启用DM数据库的审计功能?
A1: 启用DM数据库的审计功能可以通过以下方式:
- 使用DM管理工具的图形化界面启用审计开关
- 使用SQL命令修改AUDIT_SWITCH参数
- 直接修改dm.ini文件中的AUDIT_SWITCH参数
Q2: 如何配置审计规则?
A2: 配置审计规则可以通过以下方式:
- 使用DM管理工具的图形化界面创建审计规则
- 使用CREATE AUDIT POLICY命令创建审计规则
- 使用AUDIT命令启用审计规则
Q3: 审计功能对性能有什么影响?
A3: 审计功能会对数据库性能产生一定影响,主要取决于审计的范围和级别。审计范围越广、级别越高,对性能的影响越大。为了减少审计对性能的影响,建议只审计必要的操作和事件,合理配置审计规则。
Q4: 如何优化审计性能?
A4: 优化审计性能的方法:
- 只审计必要的操作和事件
- 合理配置审计文件大小和个数
- 定期清理审计记录
- 优化审计规则,减少不必要的审计
- 使用高性能的存储设备存储审计文件
Q5: 如何确保审计记录的安全性?
A5: 确保审计记录安全性的方法:
- 将审计文件存储在安全的位置
- 定期备份审计记录
- 限制审计记录的访问权限
- 对审计记录进行加密存储
- 配置审计记录的完整性检查
版本差异说明
| 版本 | 主要变化 |
|---|---|
| DM 7 | 支持基本的审计功能,包括系统审计、语句审计和对象审计 |
| DM 8 | 增强了审计功能,支持更多的审计类型和配置选项 |
| DM 8.1 | 优化了审计性能和可靠性,支持更灵活的审计配置 |
在配置和使用审计功能时,需要注意以下几点:
- 制定合理的审计策略
- 遵循最小审计原则
- 确保审计记录的安全性和完整性
- 定期监控和维护审计功能
- 定期分析审计记录
- 优化审计性能,减少对系统的影响
通过合理的配置和管理,可以充分发挥审计功能的优势,提高DM数据库的安全性和合规性。
