审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。DM 数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措
// 审计必须由具有数据库审计管理员进行设置
审计机制是 DM 数据库管理系统安全管理的重要组成部分之一。DM 数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM 具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施
// 打开审计
SP_SET_ENABLE_AUDIT (1);
// 关闭审计
SP_SET_ENABLE_AUDIT (1);
// 实时审计
SP_SET_ENABLE_AUDIT (1);
// 查询审计
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
审计级别 | 说明 | |
---|---|---|
系统级 | 系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录 | |
语句级 | 导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。 | |
对象级 | 审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句 |
语句级审计
# 设置语句级审计的系统过程如下:
VOID
SP_AUDIT_STMT(
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:语句级审计选项,即上表中的第一列
USERNAME:用户名,NULL 表示不限制
WHENEVER:审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
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');
# 取消语句级审计的系统过程如下:
VOID
SP_NOAUDIT_STMT(
TYPE VARCHAR(30),
DM8 安全管理
79
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:语句级审计选项,即上表中的第一列
USERNAME:用户名,NULL 表示不限制
WHENEVER:审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时
使用说明:
取消审计语句和设置审计语句进行匹配,只有完全匹配的才可以取消审计,否则无法取
消审计。
例 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');
对象级审计
# 设置对象级审计的系统过程如下:
VOID
SP_AUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
VOID
SP_AUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
COLNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:对象级审计选项,即上表中的第一列
DM8 安全管理
81
USERNAME:用户名
SCHNAME:模式名,为空时置„null‟
TVNAME:表、视图、存储过程名不能为空
COLNAME:列名
WHENEVER:审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
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');
# 取消对象级审计的系统过程如下:
VOID
SP_NOAUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
TVNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
VOID
SP_NOAUDIT_OBJECT (
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
SCHNAME VARCHAR (128),
DM8 安全管理
82
TVNAME VARCHAR (128),
COLNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
参数说明:
TYPE:对象级审计选项,即上表中的第一列
USERNAME:用户名
SCHNAME:模式名,为空时置„null‟
TVNAME:表、视图、存储过程名不能为空
COLNAME:列名
WHENEVER:审计时机,可选的取值为:
ALL:所有的
SUCCESSFUL:操作成功时
FAIL:操作失败时
使用说明:
取消审计语句和设置审计语句进行匹配,只有完全匹配的才可以取消审计,否则无法取
消审计。
例 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
')
文章
阅读量
获赞