达梦数据库等保评测-数据库安全问题整改项

达梦数据库等保评测-数据库安全问题整改项


一、身份鉴别类

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';
### PostgreSQL 数据库等级保护整改方案最佳实践 #### 安全配置优化 为了确保PostgreSQL数据库安全性,需进行全面的安全配置优化。这包括但不限于设置强密码策略、启用SSL加密通信、限制网络访问范围等措施[^1]。 ```sql -- 修改pg_hba.conf文件以加强认证方式 hostssl all all 0.0.0.0/0 md5 ``` #### 补丁更新机制 定期检查并安装官方发布的最新版本和安全补丁对于维护系统的安全性至关重要。及时修补已知漏洞能有效抵御外部攻击威胁。 #### 权限控制体系构建 细化角色权限分配,遵循最小特权原则授予用户操作许可。严格区分管理员账户与其他普通用户的职责边界,避免过度授权带来的风险隐患。 ```sql -- 创建只读用户 CREATE ROLE readonly_user WITH LOGIN PASSWORD 'strong_password'; GRANT CONNECT ON DATABASE mydb TO readonly_user; GRANT USAGE ON SCHEMA public TO readonly_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user; -- 将新创建对象自动赋予给readonly_user选择权 ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly_user; ``` #### 日志审计功能开启 激活详细的日志记录选有助于事后追溯异常行为轨迹。合理规划存储路径与保留周期,并考虑采用第三方工具辅助分析处理海量日志信息。 ```bash # postgresql.conf 中调整参数 logging_collector = on log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_statement = 'all' # 记录所有SQL语句执行情况 ``` #### 防范SQL注入攻击 编写应用程序接口时务必重视输入验证环节的设计思路转换成预编译查询模式,从根本上杜绝潜在的SQL注入可能性。同时利用ORM框架自带防护特性简化编码工作量降低出错概率。 ```python import psycopg2 conn = psycopg2.connect(dbname="mydb", user="user", password="password") cur = conn.cursor() # 使用占位符代替直接拼接字符串的方式传递变量值 query = "SELECT * FROM users WHERE username=%s AND password=crypt(%s, salt)" cur.execute(query, ("admin", "secret")) rows = cur.fetchall() ``` #### 备份恢复计划制定 建立健全的数据备份制度是应对突发事件的关键举措之一。建议采取多副本异地保存策略增强容灾能力的同时也要注重演练测试频率保证应急预案的有效性和实用性。 ```bash # 自动化增量备份脚本示例 #!/bin/bash export PGPASSWORD='your_db_password' pg_dump -U your_username -Fc dbname | gzip > /path/to/backups/dbname_$(date +%F).gz ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值