达梦数据库等保评测-数据库安全问题整改项
一、身份鉴别类
1. 密码策略
-- 查询当前密码策略
SELECT * FROM V$DM_INI WHERE PARA_NAME ='PWD_POLICY';
-- 修改为31(1+2+4+8+16)
SP_SET_PARA_VALUE(1,'PWD_POLICY',31);
- 策略说明
0
=无策略 |1
=禁止与用户名相同 |2
=长度≥9
4
=含大写字母 |8
=含数字 |16
=含标点符号
注:COMPATIBLE_MODE=1
时强制为0
2. 用户密码有效期与资源限制
-- 修改用户CCC配置
ALTER USER "CCC" LIMIT
CONNECT_IDLE_TIME 10,
FAILED_LOGIN_ATTEMPTS 5,
PASSWORD_LIFE_TIME 100,
PASSWORD_LOCK_TIME 10,
CONNECT_TIME 10;
-- 查询资源限制
SELECT D.USERNAME, CONN_IDLE_TIME, FAILED_NUM, LIFE_TIME, LOCK_TIME, ALLOW_ADDR
FROM SYSUSERS S, DBA_USERS D WHERE S.ID = D.USER_ID;
-- 查询账号修改时间
SELECT B.USERNAME, A.MODIFIED_TIME
FROM SYS.SYSPWDCHGS A FULL JOIN DBA_USERS B ON A.LOGINID = B.USER_ID;
3. 用户身份验证模式
- 数据库身份验证:需设置用户口令
- 外部认证:支持操作系统/LDAP/Kerberos
详见《DM8安全管理》2.3章
二、访问控制
1. 权限分离
-- 三权分立(默认): SYSDBA/SYSSSO/SYSAUDITOR
-- 四权分立(安全版本): 新增SYSDBO
2. 最小权限原则
-- 查询用户权限
SELECT * FROM DBA_ROLE_PRIVS; -- 角色权限
SELECT * FROM DBA_TAB_PRIVS; -- 表权限
3. 强制访问控制
SELECT SESS_PER_USER, FAILED_NUM, PWD_POLICY FROM SYSUSERS;
详见《DM8安全管理》4.8章
三、安全审计
1. 开启审计
-- DM7开启(SYSDBA执行)
SP_SET_PARA_VALUE(1,'ENABLE_AUDIT',1);
-- DM8开启(SYSAUDITOR执行)
SP_SET_ENABLE_AUDIT(1); -- 0:关闭 1:普通审计 2:普通+实时审计
-- 查询状态
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
2. 审计配置
-- 审计所有操作
SP_AUDIT_STMT('ALL', 'NULL', 'ALL');
-- 查看审计记录
SELECT * FROM V$AUDITRECORDS;
-- 日志管理
SP_SET_PARA_VALUE(1,'AUDIT_MAX_FILE_SIZE',200); -- 改为200M
SP_DROP_AUDIT_FILE('2019-12-6 16:30:00',0); -- 删除过期日志
四、入侵防范
1. 客户端限制
-- IP白名单配置
ALTER USER "DMHR" ALLOW_IP "127.0.0.1","223.254.7.206","223.254.7.*";
-- 查询白名单
SELECT DU.USERNAME, ALLOW_ADDR
FROM DBA_USERS DU, SYSUSERS SU
WHERE DU.USER_ID=SU.ID;
五、数据安全
1. 通信加密
SP_SET_PARA_STRING_VALUE(2,'COMM_ENCRYPT_NAME','DES_CFB');
支持算法:SELECT * FROM V$CIPHERS;
2. 存储加密
# 全库加密(初始化时执行)
./dminit path=/dmdata/dmdb encrypt_name=AES256_CBC
# 表空间加密
CREATE TABLESPACE test DATAFILE 'test.dbf' SIZE 50 ENCRYPT WITH AES256_ECB;
六、备份恢复
1. 物理备份
BACKUP DATABASE FULL BACKUPSET 'd:\bak_full_01'; -- 备份
RESTORE DATABASE 'c:\data\DAMNEG\dm.ini' FROM BACKUPSET 'd:\bak_full_01'; -- 还原
七、剩余信息保护
-- 启用客体重用
SP_SET_PARA_VALUE(2,'ENABLE_OBJ_REUSE',1); -- 需重启生效
-- 查询状态
SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_OBJ_REUSE';