文章目录
- 前言
- 审计开关
- 审计级别
- 设置语句级审计的系统过程
- 取消语句级审计的系统过程
- 设置对象级审计的系统过程
- 取消对象级审计的系统过程
- 审计信息查阅
- 使用审计分析工具查看
前言
审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。DM 数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。
审计开关
示例:审计有三种状态:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
注意:安全版的DM数据库审计状态默认为2。
打开审计功能(2种方法打开审计功能):
1.打开审计功能:
SQL> sp_set_para_value(1(指的是静态参数),'ENABLE_AUDIT',1);
2.该方法仅适用于DM8版本,DM7报错,而且只能用SYSAUDITOR用户来打开此功能。
SQL> SP_SET_ENABLE_AUDIT (1);
3.查看审计状态:
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
审计级别
说明
审计级别 | 说明 |
系统级 | 系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录 |
语句级 | 导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句 |
对象级 | 审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句 |
设置语句级审计的系统过程
打开语句级别的审计语法:
SP_AUDIT_STMT(TYPE,USERNAME,WHENVER);
TYPE:审计选项
USERNAME:用户,nul表示不限制
WHENEVER:审计时机
ALL :所有的
SUECCFUL:操作成功时
FAIL:操作失败时。
例 1,审计表的创建、修改和删除。
SP_AUDIT_STMT('TABLE'对象, 'NULL'用户, 'ALL'审计时机);
例 2,对 SYSDBA 创建用户成功进行审计。
SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');
例 3,对用户 USER2 进行的表的修改和删除进行审计,不管失败和成功。
SP_AUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');
取消语句级审计的系统过程
例 1,取消对表的创建、修改和删除的审计。
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');
例 2,取消对 SYSDBA 创建用户成功进行审计。
SP_NOAUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');
例 3,取消对用户 USER2 进行的表的修改和删除的审计。
SP_NOAUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');
SP_NOAUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');
设置对象级审计的系统过程
对象级审计:是对数据对象的操作做审计,主要有INSERT、UPDATE、DELETE、SELECT、EXECUTE、MERGE、INTO、EXECUTE TRIGGER。
打开对象级别的审计语法:
SP_AUDIT_OBJECT(TYPE,USERNAME,SCHNAME,TVNAME,COLNAME,WHENVER);
TYPE:对象级审计选项,即上表中的第一列 USERNAME 用户名 SCHNAME 模式名,为空时置‘null’
TVNAME:表、视图、存储过程名不能为空 COLNAME 列名 WHENEVER:审计时机
SUECCFUL:操作成功时
FAIL:操作失败时。
例 1,对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作进行审计。
SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
例 2,对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计。
SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
取消对象级审计的系统过程
例 1,取消对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作的审计。
SP_NOAUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
SP_NOAUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL');
例 2,取消对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功操作的审计。
SP_NOAUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
审计信息查阅
当审计设置后,审计的相关设置信息都记录在数据字典表SYSAUDITOR.SYSAUDIT 中。
SYSAUDITOR.V$AUDITRECORDS 查询系统默认路径下的审计文件的审计记录。
使用审计分析工具查看
另外我们可以使用DM审计分析工具来做审计设置及查看审计日志。
在实例文件夹下会自动生成一个文件,打开DM审计分析工具后把它添加进去即可。