千里之行始于足下,梦想不付之行动,终究是纸上谈兵
经过一段时间的达梦DCP培训让学习了好多支持点。让我对达梦的理解更加深刻。
今天为大家说一说达梦数据的审计系统
审计开关在达梦数据库dm.ini配置文件中。ENABLE_AUDIT来控制的,有三种取值
ENABLE_AUDIT=0 —关闭审计
ENABLE_AUDIT=1 —打开普通审计
ENABLE_AUDIT=2 —打开普通审计和实时审计
在普通版中,ENABLE_AUDIT=0 在安全版中,ENABLE_AUDIT=2
注意:审计开关必须由具有数据审计员权限的的管理员才能打开!!!
查询审计是否打开使用一下语句
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'
达梦数据库的审计级别: 系统级、语句级、对象级
系统级:记录审计系统的关闭和启动。此级别无需用户进行设置,自动记录。
语句级:对数据库对象的特殊SQL或是语句组来审计。
对象级:审计作用在特殊对象上的语句。
打开审计:sp_set_para_value(1,'ENABLE_AUDIT',1);
查询审计是否打开: SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'
DM8打开审计方式 SP_SET_ENABLE_AUDIT(1);
语句级审计
打开语句级别的审计语法:SP_AUDIT_STMT(TYPE,USERNAME,WHENVER)
TYPE:审计选项
USERNAME:用户,nul表示不限制
WHENEVER:审计时机 ALL :所有的、 SUECCFUL:操作成功时、FAIL:操作失败时。
设置语句级别的审计 SP_AUDIT_STMT('TABLE','SYSDBA','ALL'); -- 审计SYSDBA用户下的表的操作权限。
注意:这里需要使用SYSAUDITOR这个用户去操作以上 SP_AUDIT_STMT(‘TABLE’,‘SYSDBA’,‘ALL’);命令才能执行。
查看语句级别审计是否执行成功:SELECT * FROM SYSAUDITOR."V$AUDITRECORDS" ;
注意这里需要需要用SYSAUDITOR用户进行查看。
SELECT * FROM SYSAUDITOR."V$AUDITRECORDS";
取消语句级别审计:SP_NOAUDIT_STMT('TABLE','SYSDBA','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:审计时机 ALL :所有的、
SUECCFUL:操作成功时、FAIL:操作失败时。
设置语句级别的审计 SP_AUDIT_OBJECT('SELECT','SYSDBA','DMHR','EMPLOYEE','ALL');
-- 审计SYSDBA用户查看DMHR.EMPLOYEE这张表
注意:这里需要使用SYSAUDITOR这个用户去操作以上 SP_AUDIT_OBJECT('SELECT','SYSDBA','DMHR','EMPLOYEE','ALL');命令才能执行。
进行测试:SELECT * FROM DMHR.EMPLOYEE;
查看审计是否执行成功:SELECT * FROM SYSAUDITOR."V$AUDITRECORDS" ;
注意这里需要需要用SYSAUDITOR用户进行查看。
SELECT * FROM SYSAUDITOR."V$AUDITRECORDS";
取消对象级别审计:SP_NOAUDIT_OBJECT('SELECT','SYSDBA','DMHR','EMPLOYEE','ALL')