达梦数据库 忘记 SYSDBA 密码 处理方法

DM 提供数据库身份验证模式、基于操作系统的身份验证模式、外部身份验证模式和 UKEY 身份验证模式来保护对数据库访问的安全。数据库身份验证模式需要利用数据库口令, 即在创建或修改用户时指定用户口令,用户在登录时输入对应口令进行身份验证;基于操作 系统的身份验证模式使用当前操作系统的用户名登录数据库,数据库中需要存在当前操作系统的同名用户;外部身份验证模式支持 LDAP 身份验证、SSL 身份验证和 KERBEROS 身份验证。

基于操作系统的身份验证仅支持本机验证,本机验证需要将 DM 配置文件 dm.ini 的 ENABLE_LOCAL_OSAUTH 参数设置为 1(缺省为 0),该参数为静态参数,数据库管理员 可以使用系统过程 SP_SET_PARA_VALUE 进行修改,但修改后需要重新启动 DM 服务器 才能生效。基于操作系统的身份验证需要首先将操作系统用户加入到操作系统的 dmdba|dmsso|dmauditor 用户组,分别对应数据库的 SYSDBA|SYSSSO|SYSAUDITOR 用户。

本文假设管理员忘记SYSDBA密码的时候,利用启用基于操作系统的身份证验证模式,登录数据库以后再修改密码。

  1. 确保数据库启动的操作系统用户(本例为dmdba),须归属于dmdba组。

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [dmdba@dbserver01 DM] ps -ef \| grep server dmdba 67632 1 0 22:22 pts/2 00:00:00 /dm8/bin/dmserver path=/dm8/data/DM/dm.ini -noconsole dmdba 67735 67134 0 22:23 pts/2 00:00:00 grep server \[dmdba@dbserver01 DM\] [dmdba@dbserver01 DM]$ id dmdba uid=12345(dmdba) gid=12349(dinstall) groups=12349(dinstall),12350(dmdba) # 以上,实例通过dmdba用户启动,它归属于dmdba组。如果启动用户不归属于dmdba,或dmdba组不存在的话,可以root用户如下操作: # useradd dmdba # usermod -G dmdba xxx |

  1. 手工修改dm.ini,添加参数配置 ENABLE_LOCAL_OSAUTH = 1

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [dmdba@dbserver01 DM] pwd /dm8/data/DM \[dmdba@dbserver01 DM\] ls -l dm.ini -rw-r--r-- 1 dmdba dinstall 73709 Jan 17 22:22 dm.ini [dmdba@dbserver01 DM] \[dmdba@dbserver01 DM\] vi dm.ini # 添加以下内容至文件末尾: ENABLE_LOCAL_OSAUTH = 1 |

  1. 重启数据库实例后,`disql / as sysdba` 方式登录数据库修改密码。

备注:此时可以用任意密码(甚至是错误密码)登录sysdba用户。

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [dmdba@dbserver01 DM] disql sysdba/xxxx as sysdba Server\[LOCALHOST:5236\]:mode is normal, state is open login used time : 4.807(ms) disql V8 SQL\> select \* from vversion; LINEID BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284094-20231108-207962-20067 used time: 1.076(ms). Execute id is 501. SQL> SQL> alter user sys identified by dameng123; executed successfully used time: 9.643(ms). Execute id is 502. SQL> SQL> connect sysdba/dameng123@localhost:5236 Server[localhost:5236]:mode is normal, state is open login used time : 2.677(ms) SQL> SQL> select sysdate(); LINEID SYSDATE() ---------- ------------------- 1 2024-01-17 22:29:28 used time: 1.324(ms). Execute id is 701. SQL> |

  1. 恢复数据库身份证验证模式,禁用操作系统身份证验证模式:

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [dmdba@dbserver01 ~]$ disql / as sysdba Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.344(ms) disql V8 SQL> alter user sys identified by dameng123; executed successfully used time: 44.092(ms). Execute id is 601. SQL> SQL> sp_set_para_value(2,'ENABLE_LOCAL_OSAUTH',0); DMSQL executed successfully used time: 2.082(ms). Execute id is 602. SQL> host DmServiceDM restart Stopping DmServiceDM: [ OK ] Starting DmServiceDM: [ OK ] SQL> connect sysdba/xxx@dm [-2501]:Invalid username or password. SQL> SQL> connect sysdba/dameng123@dm Server[192.168.101.179:5236]:mode is normal, state is open login used time : 3.311(ms) SQL> SQL> select sysdate(); LINEID SYSDATE() ---------- ------------------- 1 2024-01-17 22:34:27 used time: 0.961(ms). Execute id is 501. SQL> show parameter ENABLE_LOCAL_OSAUTH; LINEID PARA_NAME PARA_VALUE ---------- ------------------- ---------- 1 ENABLE_LOCAL_OSAUTH 0 # 此时,如果发现dm.ini文件末尾添加的配置(ENABLE_LOCAL_OSAUTH = 1)仍然存在,手工删除即可。 |

以上,完整模拟了达梦数据库忘记SYSDBA密码的情况下,如何成功修改SYSDBA密码。


本文来自于我的技术博客 宋小荣-CSDN博客

转载请标注源文链接,否则追究法律责任!

相关推荐
TDengine (老段)14 分钟前
TDengine 数学函数 FLOOR 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
大气层煮月亮1 小时前
Oracle EBS ERP开发——报表生成Excel标准模板设计
数据库·oracle·excel
云和数据.ChenGuang1 小时前
达梦数据库的命名空间
数据库·oracle
三三木木七2 小时前
mysql拒绝连接
数据库·mysql
蹦跶的小羊羔2 小时前
sql数据库语法
数据库·sql
唐古乌梁海2 小时前
【mysql】InnoDB的聚簇索引和非聚簇索引工作原理
数据库·mysql
我变秃了也没变强2 小时前
pgsql配置密码复杂度策略
数据库·postgresql
PawSQL2 小时前
企业级SQL审核工具PawSQL介绍(1) - 六大核心能力
数据库·sql·oracle
幼稚园的山代王2 小时前
NoSQL介绍
数据库·nosql
猫林老师2 小时前
HarmonyOS线程模型与性能优化实战
数据库·分布式·harmonyos