在MongoDB 2.6.1中,我设置了一个具有dbAdmin权限的用户:
{
"_id" : "mydbname.myusername",
"user" : "myusername",
"db" : "mydbname",
"credentials" : {
"MONGODB-CR" : "<some credentials>"
},
"roles" : [
{
"role" : "dbAdmin",
"db" : "mydbname"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我使用mongo shell连接到数据库(在命令行上使用-u和-p)并运行如下查询时:
db.mycollectionname.find()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
error: { "$err" : "not authorized for query on mydbname.request", "code" : 13 }
Run Code Online (Sandbox Code Playgroud)
有什么想法可以发生什么?
到目前为止,我已经尝试添加我可以找到的每个角色给用户,但这没有帮助.
我正在尝试为我的应用程序用户授予一个角色,该角色将允许他们在特定数据库中执行所需的任何操作。
另外,我假设对于我的简单应用程序,当用户首次向该应用程序注册时,我才,然后才授予他们该角色?
在JavaScript中为用户授予特定数据库“任何操作”角色的简写是什么?
use admin
db.grantRolesToUser(
"myUsersName",
[
{
role: "doAnythingAndEverything", db: "userDBName"
},
]
)
Run Code Online (Sandbox Code Playgroud)