达梦数据库审计功能
前言
审计机制是DM数据库管理系统安全管理的重要组成部分之一。DM数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。
审计开关
打开普通审计开关:
SP_SET_ENABLE_AUDIT (1);
ENABLE_AUDIT=0 —关闭审计
ENABLE_AUDIT=1 —打开普通审计
ENABLE_AUDIT=2 —打开普通审计和实时审计
适用于DM8版本,DM7报错
其他用户启动会报错:如下:
解决办法:
SYSAUDITOR用户登录
审计级别
△具有AUDIT DATABASE权限的审计员才能进行审计设置
审计设置存放于DM字典表SYSAUDIT中,进行一次审计设置就在SYSAUDIT中增加一条对应的记录,取消审计则删除SYSAUDIT中相应的记录。
审计级别 | 说明 |
---|---|
系统级 | 系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录 |
语句级 | 导致影响特定类型数据库对象的特殊SQL或语句组的审计。如AUDIT TABLE 将审计CREATE TABLE、ALTER TABLE和DROP TABLE等语句 |
对象级 | 审计作用在特殊对象上的语句。如test表上的INSERT语句 |
更多内容进入达梦社区了解:达梦审计文档
语句级审计
设置语句级审计
设置语句级审计的系统过程如下:
VOID
SP_AUDIT_STMT(
TYPE VARCHAR(30),--语句级审计选项
USERNAME VARCHAR (128), --用户名
WHENEVER VARCHAR (20) --审计时机:ALL:所有的SUCCESSFUL:操作成功时FAIL:操作失败时
)
例如:
SP_AUDIT_STMT('TABLE', 'NULL', 'ALL');--审计表的创建、修改和删除
SP_AUDIT_STMT('USER', 'SYSDBA', 'SUCCESSFUL');--对SYSDBA创建用户成功进行审计。
SP_AUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');--对用户USER2进行的表的修改和删除进行审计,不管失败和成功。
SP_AUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');
取消语句级审计
取消语句级审计的系统过程
VOID
SP_NOAUDIT_STMT(
TYPE VARCHAR(30),
USERNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
用法与设置基本一致。
对象级审计
设置对象级审计
对象级审计发生在具体的对象上,需要指定模式名以及对象名。
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) --审计时机
)
例如:
SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL'); --对SYSDBA对表PERSON.ADDRESS进行的添加的成功操作进行审计。
SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS', 'SUCCESSFUL'); --对SYSDBA对表PERSON.ADDRESS进行的修改的成功操作进行审计。
SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL'); --对SYSDBA对表PERSON.ADDRESS的ADDRESS1列进行的修改成功的操作进行审计
取消对象级审计
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),
TVNAME VARCHAR (128),
COLNAME VARCHAR (128),
WHENEVER VARCHAR (20)
)
用法与设置类似!
补充说明
- 只要审计功能被启用,系统级的审计记录就会产生;
- 在进行数据库审计时,审计员之间没有区别,可以审计所有数据库对象,也可取消其他审计员的审计设置;
- 语句级审计不针对特定的对象,只针对用户;
- 对象级审计针对指定的用户与指定的对象进行审计;
- 在设置审计时,审计选项不区分包含关系,都可以设置;
- 在设置审计时,审计时机不区分包含关系,都可以进行设置;
- 如果用户执行的一条语句与设置的若干审计项都匹配,只会在审计文件中生成一条审计记录。
审计文件管理
审计文件默认存放在数据库的SYSTEM_PATH指定的路径,即数据库所在路径。用户也可在dm.ini文件中添加参数AUD_PATH来指定审计文件的存放路径
审计文件命名格式为“AUDIT_GUID_创建时间.log
随着系统的运行,审计记录将会不断增加,审计文件需要更多的磁盘空间。需要我们去及时对审计文件进行备份。
备份
步骤:
通过打开DM审计分析工具
配置需要连接的信息,进入管理界面
审计日志查看:
通过点击添加文件,选择AUD_PATH路径的文件(配置了的话,无配置,默认在系统路径 ),确定。
可以通过增加筛选规则,来进行筛选,选择需要的审计信息来进行备份。
删除
系统过程:
VOID
SP_DROP_AUDIT_FILE(
TIME_STR VARCHAR(128), --指定的时间字符串
TYPE INT --审计文件类型,0表示删除普通审计文件,1表示删除实时审计文件
);
例如;
SP_DROP_AUDIT_FILE('2015-12-6 16:30:00',0); --定删除2015-12-6 16:30:00以前的普通审计文件
加密
略
自此,就是达梦数据库审计功能的基本介绍了。
更多资讯请上达梦技术社区了解: https://eco.dameng.com