MongoDB管理数据库用户时为何始终返回未授权错误?
MongoDB未授权错误的原因及解决方法
问题原因
- 你在admin数据库创建的
leon用户,仅拥有admin库的权限,新创建的数据库并未给该用户分配用户管理类角色(比如userAdmin)。 - MongoDB的权限是数据库隔离的,每个库的用户权限相互独立,哪怕是admin库的用户,没有明确授权的话,也无法操作其他库的用户管理功能。
解决步骤
- 用admin账号重新连接MongoDB,切换到你新建的目标数据库
- 执行以下命令给
leon分配该库的用户管理权限(替换your_new_db为你的新数据库名):
db.grantRolesToUser( "leon", [ { role: "userAdmin", db: "your_new_db" } ] )
如果需要让leon能管理所有数据库的用户,可使用userAdminAnyDatabase角色(遵循最小权限原则,不建议随意使用):
db.grantRolesToUser( "leon", [ { role: "userAdminAnyDatabase", db: "admin" } ] )
- 重新用
leon账号连接新数据库,再尝试“Manage users”操作即可正常使用
内容的提问来源于stack exchange,提问作者ahwyX100
相关产品推荐
相关产品推荐

