达梦数据库审计设置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
达梦数据库审计设置
普通版和安全版的区别:安全版本在普通版本的基础上,还提供“四权分立”安全机制和强制访问控制安全管理功能。
1、用户识别与标记
PRIV_FLAG:启用四权分立。仅在安全版本下可见和可设置。四权分立新增数据库对象操作员账户 SYSDBO,其缺省口令为 SYSDBO
SYSSSO用户可以制定安全策略,创建安全标记。
口令策略:
PWD_POLICY:
0 无策略
1 禁止与用户名相同
2 口令长度不小于 9
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
设置密码策略:SP_SET_PARA_VALUE(1, 'PWD_POLICY',8);
禁用角色:SP_SET_ROLE('BOOKSHOP_ROLE1', 0);
2、审计
2.1、审计级别说明
DM 允许在三个级别上进行审计设置:
系统级:系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级:导致影响特定类型数据库对象的特殊SQL或语句组的审计。如 AUDIT TABLE 将审计 CREATE TABLE、ALTER TABLE 和 DROP TABLE 等语句
对象级:审计作用在特殊对象上的语句。如 test 表上的 INSERT 语句
2.2、审计开关
审计开关由 DM 的 INI 参数 ENABLE_AUDIT 控制,有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
通过系统过程 SP_SET_PARA_VALUE 重新设置 ENABLE_AUDIT 的值,ENABLE_AUDIT 为动态 INI 参数:SP_SET_PARA_VALUE
(1,’ENABLE_AUDIT’,1)
开启审计:
SELECT * FROM V$PARAMETER WHERE NAME=’ENABLE_AUDIT’;
dm.ini文件中的参数ENABLE_AUDIT=1(安全版可以设置为2)
2.3、审计相关视图
审计设置存放于 DM 字典表 SYSAUDIT 中,进行一次审计设置就
在 SYSAUDIT 中增加一条对应的记录:
SELECT * FROM SYSAUDITOR.SYSAUDIT;
审计记录的具体内容存在在V$AUDITRECORDS视图中:
select * from SYSAUDITOR.V$AUDITRECORDS ;
例 1,对用户 USER2 进行的表的修改和删除进行审计,不管失败和成功。SP_AUDIT_STMT('UPDATE TABLE', 'USER2', 'ALL');
SP_AUDIT_STMT('DELETE TABLE', 'USER2', 'ALL');
例2,取消对表的创建、修改和删除的审计。
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');
例3,对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作进行审计。
SP_AUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS',
'SUCCESSFUL');
SP_AUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS',
'SUCCESSFUL');
例4,取消对 SYSDBA 对表 PERSON.ADDRESS 进行的添加和修改的成功操作的审计。
SP_NOAUDIT_OBJECT('INSERT', 'SYSDBA', 'PERSON', 'ADDRESS',
'SUCCESSFUL');
SP_NOAUDIT_OBJECT('UPDATE', 'SYSDBA', 'PERSON', 'ADDRESS',
'SUCCESSFUL');
SP_NOAUDIT_STMT
对某个所用户进行的select操作审计:
SP_AUDIT_OBJECT('SELECT','NULL','TEST','TABLE1','ALL');
2.4、具体审计设置
登录用户的审计:
单个用户,对SYSAUDITOR用户的登录操作进行记录,不管是否登陆成功:SP_AUDIT_STMT('CONNECT', 'SYSAUDITOR', 'ALL');
对所有用户,对所有用户的登录操作进行记录,不管是否登陆成功:
SP_AUDIT_STMT('CONNECT', 'NULL', 'ALL');
查询登录记录:
select * from SYSAUDITOR.V$AUDITRECORDS ;
对所有用户对test.table1表进行的select操作审计:
SP_AUDIT_OBJECT('SELECT','NULL','TEST','TABLE1','ALL');
对sysdba用户对test.table1表进行的select操作审计:
SP_AUDIT_OBJECT('SELECT','SYSDBA','TEST','TABLE1','ALL');
对 SYSDBA 对表 PERSON.ADDRESS 的 ADDRESS1 列进行的修改成功的操作进行审计:
SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS 1','SUCCESSFUL');