在Mongo中,我创建了一个数据库并专门为该数据库创建了一个用户。当我键入"显示用户"我明白了:
rs0:PRIMARY> show users;
{
"_id" : "sampleuser.sampleuser",
"user" : "sampleuser",
"db" : "sampledb",
"roles" : [
{
"role" : "readWrite",
"db" : "sampledb"
},
{
"role" : "dbAdmin",
"db" : "sampledb"
}
]
}
但是当我尝试用该用户执行命令时,我得到以下内容:
not authorized on sampledb to execute command { find: "social_posts", filter: { customer_id: "123", 0: { posted: { $ne: 1 } } } }
哪些权限设置错误?
答案 0 :(得分:0)
在执行任何查询之前,您必须使用db.auth()对数据库进行身份验证。
来自db.auth() doc
db.auth()
允许用户从shell中对数据库进行身份验证。
db.auth()方法可以接受:
用户名和密码。
db.auth( <username>, <password> )
- 醇>
包含用户名和密码的用户文档,以及可选的身份验证机制和摘要密码标记。
db.auth( { user: <username>, pwd: <password>, mechanism: <authentication mechanism>, digestPassword: <boolean> }
返回: db.auth()在身份验证失败时返回0,在操作成功时返回1。