当前位置: 首页 > news >正文

达梦数据库常见漏洞及处理方案

目录

  • 达梦数据库常见漏洞及处理方案
    • 一、登录失败口令锁定时间过短
    • 二、口令使用期限过大
    • 三、审计功能未开启
    • 四、通信未加密
      • 1. 基于传输层的SSL协议加密(暂不推荐)
      • 2. 基于应用层的消息包加密
    • 五、未检查存储过程中EXECUTE IMMEDIATE语句的权限
    • 六、口令可重用前的变更次数过小
    • 七、口令可重用前的等待天数过小
    • 八、DBA用户权限未限制
    • 九、SP_MAC_LABEL_FROM_CHAR过程权限未限制
    • 总结

达梦数据库常见漏洞及处理方案

在数据库运维工作中,安全始终是核心议题之一。达梦数据库作为国产数据库的代表,其安全加固尤为重要。本文将结合实际运维经验,详细介绍达梦数据库中常见漏洞的检测与修复方法,帮助数据库管理员构建更安全的运行环境。

一、登录失败口令锁定时间过短

风险描述:当登录失败次数过多时,若锁定时间过短,容易遭受暴力破解攻击,导致账号安全风险升高。

检查方法:通过以下SQL查询当前用户的失败登录次数限制和锁定时间:

select FAILED_NUM, LOCK_TIME, SF_GET_USERNAME_BY_ID(ID), u.* from SYSUSERS u;

修复方案:设置登录失败5次后锁定30分钟(排除系统内置的SYSSSO和SYSAUDITOR用户):

select 'ALTER USER '||SF_GET_USERNAME_BY_ID(ID)||' LIMIT FAILED_LOGIN_ATTEMPS 5, PASSWORD_LOCK_TIME 30;' from SYSUSERS u where SF_GET_USERNAME_BY_ID(ID) not in ('SYSSSO','SYSAUDITOR');

执行上述查询生成的SQL语句,即可生效。

二、口令使用期限过大

风险描述:口令长期不更换会增加泄露后被滥用的风险,合理设置有效期可强制用户定期更新口令。

检查方法:查询当前口令有效期和过期宽限时间:

select LIFE_TIME, GRACE_TIME, SF_GET_USERNAME_BY_ID(ID), u.* from SYSUSERS u;

注意:当宽限时间为UNLIMITED时,无法设置有效期,需先调整宽限时间。

修复方案

  1. 设置口令过期宽限时间为10天:
select 'ALTER USER '||SF_GET_USERNAME_BY_ID(ID)||' LIMIT PASSWORD_GRACE_TIME 10;' from SYSUSERS u where SF_GET_USERNAME_BY_ID(ID) not in ('SYSSSO','SYSAUDITOR');
  1. 设置口令有效期为30天:
select 'ALTER USER '||SF_GET_USERNAME_BY_ID(ID)||' LIMIT PASSWORD_LIFE_TIME 30;'from SYSUSERS u where SF_GET_USERNAME_BY_ID(ID) not in ('SYSSSO','SYSAUDITOR');

三、审计功能未开启

风险描述:未开启审计功能时,无法记录数据库操作行为,难以追溯安全事件。

检查方法:查询审计开关状态:

SELECT * FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT';
  • 0:关闭审计;1:打开普通审计;2:打开普通审计和实时审计。

修复方案:由SYSAUDITOR用户登录后开启普通审计:

SP_SET_ENABLE_AUDIT (1);

四、通信未加密

风险描述:数据库通信未加密可能导致数据在传输过程中被窃取或篡改。

达梦提供两种加密方式(无需同时开启,避免资源消耗):

1. 基于传输层的SSL协议加密(暂不推荐)

检查方法

SELECT * FROM V$PARAMETER WHERE NAME='ENABLE_ENCRYPT';
  • 0:不开启;1:开启加密和认证;2:仅认证;4:仅加密。

修复方案(需重启数据库生效):

SP_SET_PARA_VALUE (2,'ENABLE_ENCRYPT',1); -- 暂不建议使用

2. 基于应用层的消息包加密

检查方法

SELECT * FROM V$PARAMETER WHERE NAME='COMM_ENCRYPT_NAME';
  • 空串:不加密;算法名:启用对应加密算法。

修复方案(需重启数据库生效):

SP_SET_PARA_STRING_VALUE(2,'COMM_ENCRYPT_NAME','DES_OFB');

取消加密:

SP_SET_PARA_STRING_VALUE(2,'COMM_ENCRYPT_NAME',null);

五、未检查存储过程中EXECUTE IMMEDIATE语句的权限

风险描述:若不限制存储过程中动态SQL的执行权限,可能导致越权操作风险。

检查方法:查询参数状态:

SELECT * FROM V$PARAMETER WHERE NAME='ENABLE_STRICT_CHECK';
  • 0:不检查;1:开启检查。

修复方案(需重启数据库生效):

SP_SET_PARA_VALUE(2,'ENABLE_STRICT_CHECK',1);

六、口令可重用前的变更次数过小

风险描述:若口令可重用前的变更次数过少,用户可能频繁使用旧口令,增加泄露风险。

检查方法

select REUSE_MAX, SF_GET_USERNAME_BY_ID(ID), u.* from SYSUSERS u;

修复方案:设置口令需变更5次后才可重用:

select 'ALTER USER '||SF_GET_USERNAME_BY_ID(ID)||' LIMIT PASSWORD_REUSE_MAX 5;'from SYSUSERS u where SF_GET_USERNAME_BY_ID(ID) not in ('SYSSSO','SYSAUDITOR');

七、口令可重用前的等待天数过小

风险描述:若口令可重用前的等待天数不足,用户可能短期内恢复旧口令,降低安全性。

检查方法

select REUSE_TIME, SF_GET_USERNAME_BY_ID(ID), u.* from SYSUSERS u;

修复方案:设置口令需等待30天后才可重用:

select 'ALTER USER '||SF_GET_USERNAME_BY_ID(ID)||' LIMIT PASSWORD_REUSE_TIME 30;'from SYSUSERS u where SF_GET_USERNAME_BY_ID(ID) not in ('SYSSSO','SYSAUDITOR');

八、DBA用户权限未限制

风险描述:DBA用户的“ANY”权限过大,可能导致误操作或权限滥用。

检查方法:查询DBA权限限制状态:

SELECT * FROM V$PARAMETER WHERE NAME='RESTRICT_DBA';
  • 1:限制“ANY”权限;0:不限制。

修复方案

  • 非安全版本:由SYSDBA执行;
  • 安全版本:由SYSSSO执行。
SP_RESTRICT_DBA(1);

补充检查

  • 查询具有DBA角色的用户:
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE = 'DBA';
  • 查询DBA用户的系统权限:
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE IN (SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE = 'DBA');

建议实施权限分离,创建备份管理员、安全审计员等角色。

九、SP_MAC_LABEL_FROM_CHAR过程权限未限制

风险描述:若普通用户可执行SP_MAC_LABEL_FROM_CHAR过程,可能绕过MAC标签控制。

检查方法(仅安全版有效):

SELECT * FROM V$DM_INI WHERE PARA_NAME = 'MAC_LABEL_OPTION';
  • 0:仅SSO可调用;1:所有用户可调用;2:非SSO用户无法创建新LABEL。

修复方案

ALTER SYSTEM SET 'MAC_LABEL_OPTION' = 0 BOTH;

注意:SYSAUDITOR、SYSSSO用户需分别登录后修改自身策略,其他用户由SYSDBA操作。

总结

达梦数据库的安全加固需从账号策略、审计机制、通信加密、权限控制等多维度入手。上述方案中,部分参数修改后需重启数据库生效,建议在维护窗口执行。定期执行检查语句,结合业务场景调整配置,可有效降低安全风险。

http://www.lryc.cn/news/619704.html

相关文章:

  • 计算机网络---用户数据报协议User Datagram Protocol(UDP)
  • Unity新手制作跑酷小游戏详细教程攻略
  • CMake笔记:配置(Configure)、生成(Generate)和构建(Build)
  • B站 韩顺平 笔记 (Day 17)
  • c++编程题-笔记
  • 电商双11美妆数据分析
  • 《Foundations and Recent Trends in Multimodal Mobile Agents: A Survey》论文精读笔记
  • 2025年手游防护终极指南:四维防御体系破解DDoS、外挂与协议篡改
  • 从人机协作到情感共鸣:智能销售机器人如何重塑零售体验
  • 织构表面MATLAB仿真
  • 来伊份×养馋记:社区零售4.0模式加速渗透上海市场
  • 10.反射获取静态类的属性 C#例子 WPF例子
  • python的滑雪场雪具租赁服务数据可视化分析系统
  • mapbox进阶,实现精灵图生成和拆分(小图任意大小,不固定),并简单使用
  • 10、系统规划与分析
  • AI编程:python测试MQ消息服务联接和消息接收
  • csp知识基础——贪心算法
  • 神经网络训练核心组件
  • 一条n8n工作流
  • electron进程间通信- 从渲染进程到主进程
  • Python open 函数详解:参数用法与文件操作实战指南
  • 美团搜索推荐统一Agent之需求分析与架构设计
  • Queue参考代码
  • CompletableFuture介绍及使用方式
  • 闹钟时间到震动与声响提醒的实现-库函数版(STC8)
  • 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估计、贝叶斯回归、贝叶斯计算)实践
  • 计算机网络——协议
  • LangGraph 指南篇-基础控制
  • Linux软件编程3.(文件IO和目录IO)
  • 谷歌、facebook、tiktok广告账户多开怎么安全?亚马逊、ebay、shopee多店铺怎么做好?看看adspower工具,注册免费试用及实用技巧分享