我创建了一个用户,其角色为userAdminAnyDatabase,但无法使用此帐户访问配置数据库
mongos> use admin;
switched to db admin
mongos> show users;
{
"_id" : ObjectId("51a075cf35978c6326c6350f"),
"user" : "clustersa",
"pwd" : "e76cbe5c62d704fa4074a7047fa165f5",
"roles" : [
"userAdminAnyDatabase"
]
}
mongos> db.auth('clustersa','clustersa')
1
mongos> use config
switched to db config
mongos> db.runCommand( { listshards : 1 } );
{ "ok" : 0, "errmsg" : "access denied - use admin db" }
最佳答案
userAdminAnyDatabase不向配置数据库授予读取权限-只允许更改任何用户权限,包括其自己的权限。
如果您的目标是创建一个超级用户,并且有能力执行所有操作,请为该用户添加clusterAdmin和readwriteanddatabase rolls。
讨论了联合私有化here
关于linux - 访问配置数据库时拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16757187/