Yapi中通过MongoDB修改管理员密码与新增管理员
如何在Docker部署的Yapi中通过MongoDB修改管理员密码与新增管理员
便捷管理Yapi权限:无需前端重置,直接通过数据库操作修改密码及添加管理员
一、进入MongoDB容器并连接数据库
首先,通过以下命令进入运行中的MongoDB容器:
docker exec -it mongo bash
接着使用管理员账户连接MongoDB(请将<pass>
替换为你的实际密码):
mongosh -u admin -p <pass>
二、定位Yapi数据库并查看用户信息
连接数据库后,查看所有数据库,并切换到yapi数据库:
show dbs
use yapi
查看yapi数据库中的用户集合:
db.user.find()
这里可以看到所有用户的详细信息,包括用户名、邮箱、用户ID以及加密后的密码和盐值。
三、修改管理员密码
Yapi的用户密码是经过加密存储的,修改时需要同时更新password
和passsalt
字段。
例如,要将用户ID为11的账户密码改为1234qwer!@#$
,这个密码对应的加密值和盐值为:
"password" : "224179069e921d923a2059de27d60ab2cb58cc4f"
"passsalt" : "w4byep62al"
以尝试用Ldap同步的用户信息修改,无法登录故使用固定信息修改后进行调整
执行以下更新操作:
db.user.update( {_id: 11},{ $set: {password: '224179069e921d923a2059de27d60ab2cb58cc4f', passsalt: 'w4byep62al'}}
)
说明:你可以使用已知密码的加密信息,或者通过其他方式生成新的加密密码和盐值对。
更新成功后,即可使用新密码1234qwer!@#$
登录Yapi,之后可以在系统中再次修改密码。
四、添加管理员账户
如果需要将现有普通用户提升为管理员,首先查询相应用户的ID:
sql
db.user.find()
找到对应用户的ID后,通过以下命令修改用户角色(例如将用户ID为177的用户设为管理员):
sql
db.getCollection("user").update({"_id": 177},{$set: {"role": "admin"}}
)
总结
通过直接操作MongoDB数据库,我们可以高效地管理Yapi的用户权限,包括重置密码和添加管理员。这种方法适用于忘记管理员密码或需要批量修改用户权限的场景。
注意事项:
- 操作数据库前建议备份数据,避免误操作导致数据丢失
- 修改密码时需确保使用正确的加密密码和盐值对
- 更改用户角色后,建议验证用户权限是否生效
这种方法为Yapi系统管理提供了另一种灵活可靠的权限管理途径,特别适用于Docker部署环境下的管理操作。