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

达梦数据库用户开启限制白名单导致自身无法登录

1、背景

在日常进行数据库的安全加固时,用户提出了需要对连接数据库的IP进行白名单配置,对于业务用户仅支持应用节点IP登录,对此我们提供了alter user的模板SQL对用户的网络白名单进行限制:
alter user "TEST" allow_ip "192.168.10.72" ,"192.168.10.73";

Select A.allow_addr,A.not_allow_addr,A.allow_dt,A.not_allow_dt,B.USERNAME from SYSUSERS A ,DBA_USERS B WHERE A.ID=B.USER_ID;

image

但是需要配置多个IP时需要将IP以逗号隔开,否则会不断刷新可连接的网络,且只保留最后一个。

2、事件

在处理该问题时,没有将用户名修改为业务用户,而是直接对SYSDBA用户进行的操作,且在IP白名单中还写错了IP地址

alter user "SYSDBA" allow_ip "192.168.100.11";
alter user "SYSDBA" allow_ip "192.168.100.12";
alter user "SYSDBA" allow_ip "192.168.100.13";
alter user "SYSDBA" allow_ip "192.168.100.14";
alter user "SYSDBA" allow_ip "192.168.100.15";
alter user "SYSDBA" allow_ip "192.168.100.16";
alter user "SYSDBA" allow_ip "192.168.100.17";
...
exit;

且用SYSDBA用户在disql执行完成后退出了以上会话。
直接导致了TEST在本地也无法登录。
总共1个语句正依次执行…

[执行语句1]:
alter user “SYSDBA” allow_ip “192.168.100.88”;
执行成功, 影响行数0, 执行耗时28毫秒. 执行号:3709

1条语句执行成功
此时在数据库服务器本地使用disql登录127.0.0.1也无法登录。

而要将网络白名单限制取消又需要dba权限对SYSDBA用户进行操作。
其他用户虽然可以正常登录但是普通用户操作SYSDBA用户时会报错:
总共1个语句正依次执行…

[执行语句1]:
alter user “SYSDBA” allow_ip null;
执行失败(语句1)
-5549: 第1 行附近出现错误:
没有修改用户权限

1条语句执行失败

3、解决

以上操作做完之后出现死循环了,有DBA权限的SYSDBA用户无法登录,而能登录的用户又无法操作修改DBA的网络白名单。
针对这种误操作的问题,现场采用的是Linux虚拟网卡绑定IP来处理,唯一的问题在于,在执行了多次alter user后无法确认允许的IP。
普通用户查询的SYSUSERS视图无法显示SYSDBA用户的网络白名单。在系统默认的用户里面,还可以用审计用户去查询。

 

image

至此我们找到了这个白名单列表的IP地址。
接下来我们使用Linux的添加虚拟IP的方式,在本地虚拟一个IP为白名单列表的IP地址。

例如我在本地的ens32这个网卡上虚拟一个IP地址出来:

[root@dsc_131 bin]$ ifconfig ens32:1 192.168.100.88 up

 

这里并不是都要填写ens32,取决于你这里的文件名

image

 原理就是给服务器虚拟出来一个IP,允许本地的服务器使用这个IP,用完记得down掉

5cebb56cb95e152b93d544c3da870c43

 

再尝试用SYSDBA用户登录

此时登录成功后,再将SYSDBA用户的网络白名单取消即可。

image

5cebb56cb95e152b93d544c3da870c43

 

 

以下是达梦白名单的所有配置,检查,取消,和查找

1 IP访问限制
允许 IP 和禁止 IP 用于控制此登录是否可以从某个 IP 访问数据库,其中禁止 IP 优先。在设置 IP 时,设置的允许和禁止 IP 需要用双引号括起来,中间用逗号隔开,如"192.168.0.29", "192.168.0.30",也可以利用*来设置网段,如"192.168.0.*"。
1.1 设置ip白名单
alter user "AAA" allow_ip "192.168.10.72" ,"192.168.10.73";
1.2 设置ip黑名单
alter user "AAA" not_allow_ip "127.0.0.1" ;
2 时间段访问限制
允许时间段和禁止时间段用于控制此登录是否可以在某个时间段访问数据库,其中禁止时间段优先。设置的时间段中的日期和时间要分别用双引号括起来。在设置时间段时,有两种方式
2.1 具体时间段
alter user "AAA" allow_datetime "2021-09-01" "14:10:40" to "2021-09-02" "14:10:40";
2.2 规则时间段
alter user "AAA"  not_allow_datetime "SAT" "00:00:00" to "SUN" "23:59:59";
3 取消限制
alter user "AAA" not_allow_ip  null;
alter user "AAA" allow_ip   null
alter user "AAA" allow_datetime  null;
alter user "AAA" not_allow_datetime  null;
4 查看所有用户访问规则,口令有效期,时间限制
Select A.allow_addr,A.not_allow_addr,A.allow_dt,A.not_allow_dt,B.USERNAME from SYSUSERS A ,DBA_USERS B WHERE A.ID=B.USER_ID;

 

http://www.hskmm.com/?act=detail&tid=20863

相关文章:

  • 【转发】Nginx配置https
  • 本地文件多人多端同步工具:10款高性价比选择
  • 打破AI孤岛:CIO集成实战指南
  • 密码学学习记录(四)
  • Sharding-Proxy、ShardingSphere 和 Sharding-JDBC区别
  • echarts4升级为echarts5的常见问题
  • ISO 周计算 记录
  • 从 “被动耗能” 到 “主动优化”:MyEMS 开启商业建筑能源管理 “新范式”
  • 【故障排查】视频汇聚EasyCVR接入设备通道数为0?通道编码长度不规范导致
  • 来信小程序管理系统:匿名信息传递与社交互动平台
  • PCIe加速卡设计资料:416-基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡
  • 多生产者,多消费者
  • GEO优化实战指南:一周内让豆包、Deepseek、Kimi等推荐了我的插件
  • 房产楼盘小程序管理系统:助力房产营销数字化升级的优质解决方案
  • 高速信号处理设计方案:413-基于双XCVU9P+C6678的100G光纤加速卡
  • Teamcenter:结构管理器查询(又称:BOM结构查询)
  • 2025年最好用的同步云盘是哪个?一个老用户的真实体验分享
  • 使用 ShedLock 实现多实例定时任务单执行的常见错误及解决办法
  • 1_二分查找
  • AI元人文:悟空博弈专用芯片
  • 【ACM出版】第五届管理科学和软件工程国际学术会议(ICMSSE 2025)
  • PiXYZ Studio 2021下载地址与安装教程
  • coremail日常操作
  • Win 10 LSTC 使用 Podman - tfel
  • 一生一芯学习:程序,运行时环境与AM(一)
  • 如何用Java25编译Java17的项目
  • [MCP] MCP Resources
  • 【ACM出版】2025年第二届人工智能与未来教育国际学术会议(AIFE 2025)
  • HL工作日志
  • Halcon基础——图像增强