首批通过分布式安全可靠测评,为关键业务系统打造
忘记 ODC V2.4.1\~V3.1.3 版本的账号密码
更新时间:2025-06-17 09:01
问题描述
ODC V3.1.1 及之前版本的用户是通过自主注册创建,当用户忘记密码时,无法找回或者重置密码。
说明
- 建议升级至 ODC V3.2.0 及之后的版本,ODC V3.2.0 支持管理员重置普通用户的登录密码,如果忘记普通用户的密码,管理员可以在公共资源管控台的用户管理页面重置对应用户的密码。 请勿使用 本文描述的方法。
- 如何重置 ODC V2.4.1\~V3.1.3 版本的密码,请参见忘记 ODC V2.4.1~V3.1.3 版本的账号密码。
- 如何重置 ODC V2.4.0 及之前版本的密码,请参见 忘记 ODC V2.4.0 及之前版本的用户密码。
问题原因
ODC V3.1.1 及之前的版本无管理员角色,未提供密码重置、找回等功能。
影响的版本
ODC V2.4.1~V3.1.3 版本。
解决方法
通过连接 ODC MetaDB,修改用户表的密码字段,重置密码。
由于 ODC V2.4.1 及之后版本的账号密码使用 Bcrypt 算法进行摘要加密,通过 MetaDB 修改账号密码前需要生成密码对应的 Bcrypt 值。
注意
ODC V2.4.1 及之后的版本,数据库连接密码通过 ODC 用户密码加密,通过修改 MetaDB 方式重置密码,将导致用户的数据库连接中的密码不可用,需要重新配置数据库连接密码才可以使用。
步骤 1:生成密码的 Bcrypt 值
# 您可以使用 htpasswd 命令生成 Bcrypt 加密的密码
# 以下命令生成密码 123456 对应的 BCrypt 值,这里 username 可以是任意字符串
htpasswd -bBn -C 10 username 123456
# 输出样例如下,您可以复制 username: 之后的字符串
# username:$2y$10$PHcT2yHCkaqwlfb7ZjXk5uzX5oRvvuMRrrBJfKwfdRfhMeYTU7WkK
如果本机无 htpasswd 命令,可以通过一些在线工具网站生成 Bcrypt 值,例如 bcrypt.org。
步骤 2:修改用户表密码字段
-- 使用步骤 1 生成的 bcrypt 值修改 iam_user 表对应 admin 账号的密码字段值
update iam_user set `password`='your bcrypted password value'
where account_name='admin';
步骤 3:置空用户的个人连接数据库连接密码
说明
如果不置空,查询时会报错解密失败,导致无法修改密码。
-- 置空数据库连接密码
UPDATE connect_connection SET is_password_saved = 0 , `password` = NULL , sys_tenant_password = NULL
WHERE owner_id IN (SELECT `id` FROM iam_user WHERE account_name = 'admin')
AND visible_scope = 'PRIVATE';
步骤 4:在首页编辑每个连接,重新配置连接密码
admin 账号使用新的密码登录 ODC 后,在 ODC 首页个人连接列表重新配置连接密码。
如下图所示,单击 修改密码 并勾选 保存密码 复选框后,保存连接。