gpt4 book ai didi

mongodb - 对于以 "userAdminAnyDatabase"角色创建的用户,无法访问其他数据库

转载 作者:行者123 更新时间:2023-12-03 16:41:03 24 4
gpt4 key购买 nike

在mongo 2.4.x中,它支持create user in admin database的新方法,
我认为使用 userAdminAnyDatabase 角色创建的用户应该可以访问所有其他数据库吗?

db.addUser({user:"u", pwd:"p", roles:["userAdminAnyDatabase"]})

但是,它不能按照文档进行操作。

当我以2.2.x样式创建用户时,它可以工作。
db.addUser("u","p")

我的问题是我是否误操作了?如果我想创建一个可以使用2.4.x语法访问所有数据库的用户,正确的方法是什么?还需要其他选择吗?

谢谢。

这是详细的 shell 程序代码:
➜  mgo ✗ mongo
MongoDB shell version: 2.4.5
connecting to: test
> use admin
switched to db admin
> db.addUser({user: "u", pwd: "p", roles:["userAdminAnyDatabase"]})
{
"user" : "u",
"pwd" : "d4198ee555320fa5c048da6d6da440d8",
"roles" : [
"userAdminAnyDatabase"
],
"_id" : ObjectId("51dc20f0282f72950455b62e")
}
> db.auth(
Display all 170 possibilities? (y or n)
> db.auth("u","p")
1
> ^C
bye
➜ mgo ✗ mongo admin -u u -p p
MongoDB shell version: 2.4.5
connecting to: admin
> show dbs
Tue Jul 9 22:44:47.959 JavaScript execution failed: listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:L46
> use admin
switched to db admin
> db.addUser("uncle", "peter")
{
"user" : "uncle",
"readOnly" : false,
"pwd" : "e42842e07c4fc324e9724d6aa41f6411",
"_id" : ObjectId("51dc22456642fa58413adffc")
}
> db.auth("uncle", "peter")
1
> ^C
bye
➜ mgo ✗ mongo admin -u uncle -p peter
MongoDB shell version: 2.4.5
connecting to: admin
> show dbs
admi (empty)
admin 0.203125GB
local 0.078125GB
qortex_global 0.203125GB
qortexprod 0.203125GB
test (empty)
>

最佳答案

userAdminAnyDatabase的文档说(http://docs.mongodb.org/manual/reference/user-privileges/#userAdminAnyDatabase):

However, userAdminAnyDatabase and userAdmin do not explicitly authorize a user for any privileges beyond user administration.



您还必须为列表数据库命令添加“ clusterAdmin ”角色: http://docs.mongodb.org/manual/reference/user-privileges/#clusterAdmin

如果您希望用户从数据库和集合中进行读取/写入,则需要添加另一个角色,即“ readWrite ”角色: http://docs.mongodb.org/manual/reference/user-privileges/#readWrite

关于mongodb - 对于以 "userAdminAnyDatabase"角色创建的用户,无法访问其他数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551734/

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