达梦数据库审计
审计的作用
跟踪数据库操作,监视输出信息,以确定是否存在违背安全性的行为。
执行审计需要的权限
只有数据库审计员才能进行进行审计操作,数据库管理员和安全员不能参与审计活动。
达梦预定义系统审计管理员(SYSAUDITOR)
达梦的审计有三种:
系统审计
系统的启动与关闭,此级别的审计记录在任何情况下都会强制产生,无法也无需由用户进行设置。
语句审计
导致影响特定类型数据库对象的特殊 SQL 或语句组的审计。如AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句。
对象审计
审计作用在特殊对象上的语句。如 PERSON 表上的 DELETE 语句。
在 DM 系统中,启用审计功能需要两步:
1、打开审计开关(默认审计开关关闭),并重启数据库服务,对指定的审计对象设置审计条件,否则不记录审计记录。
审计开关
DM7:SP_SET_PARA_VALUES(1,’ENABLE_AUDIT’,1);
DM8:SP_SET_ENABLE_AUDIT (param int);
过程执行完成后,立即生效,param 有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计,缺省值为 0;
关闭审计:SP_SET_ENABLE_AUDIT(0);
语句审计(粗粒度的)
SP_AUDIT_STMT(type,username,whenever)
Type:审计选项
Username:用户,null 表不限制
Whenever:审计的时机
All:所有的时候
Successful:操作成功时
Fail:操作失败时。
SQL> sp_audit_stmt('TABLE','TEST01','ALL');
DMSQL 过程已成功完成
验证:
[dmdba@localhost bin]$ disql test01/dameng123;
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 9.727(毫秒)
disql V8
SQL> create table t30(id int);
SQL> create table t31 as select * from sysobjects;
操作已执行
已用时间: 14.897(毫秒). 执行号:8377. SQL> drop table t30;
操作已执行
已用时间: 80.959(毫秒). 执行号:8402
对象审计(细粒度的)
开对象级审计
sp_audit_object(type,username,schema_name,object_name,colmun_name,whenever)
SQL> sp_audit_object('INSERT','TEST01','TEST01','T20','NAME','ALL');
[dmdba@localhost ~]$ disql test01/dameng123;
SQL> delete t20 where id=10;
SQL> insert into t20 values(11,0,'CCC');
SQL> delete t20 where name='CCC';
SQL> drop table t20;
SQL> commit;
[dmdba@localhost bin]$ disql sysauditor/dameng123
SQL> select username,operation,sql_text from v$auditrecords
关闭审计
简单示例
1、系统级别的:
sp_set_endable_audit(0);
2、语句级:
sp_noaudit_stmt(‘TABLE’,’TEST01’,’ALL’);
3、对象级
sp_noaudit_object('INSERT','TEST01','TEST01','T20','NAME','ALL');
sp_noaudit_object(‘UPDATE’,’TEST01’,’TEST01’,’T20’,’NAME’,’ALL’);
sp_noaudit_object(‘DELETE’,’TEST01’,’TEST01’,’T20’,’NAME’,’ALL’);
达梦云适配技术社区:https://eco.dameng.com