如何在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部署環境下的管理操作。