db.system.users.find-6ren">
gpt4 book ai didi

security - MongoDB "userAdminAnyDatabase"用户无法管理 "any database"中的用户。为什么?

转载 作者:IT老高 更新时间:2023-10-28 13:32:07 24 4
gpt4 key购买 nike

这是一个 userAdminuserAdminAnyDatabase 的问题。

system.users 我有以下用户(密码 1234 两个):

> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }

连接错误的用户:

$ mongo mono -u admin -p 1234
connecting to: mono
Thu Dec 12 10:09:00.733 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228

没关系。

与数据库管理员连接:

$ mongo mono -u admin_one -p 1234
connecting to: mono
> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }

这也可以。

现在,与“AnyDatabase”管理员连接时出现错误:

$ mongo mono -u admin_two -p 1234
connecting to: mono
> db.system.users.find()
error: { "$err" : "not authorized for query on mono.system.users", "code" : 16550 }

为什么?

最佳答案

您似乎正试图在 mono 数据库上分配 userAdminAnyDatabase 角色,而不是在 admin 数据库上。 anyDatabase 角色仅适用于通过 admin 数据库进行身份验证的用户。

the documentation of the anyDatabase Role了解更多信息。

关于security - MongoDB "userAdminAnyDatabase"用户无法管理 "any database"中的用户。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com