MongoDB用户未被授权

时间:2017-03-16 21:22:24

标签: mongodb

在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 } } } }

哪些权限设置错误?

1 个答案:

答案 0 :(得分:0)

在执行任何查询之前,您必须使用db.auth()对数据库进行身份验证。

来自db.auth() doc

  

db.auth()

     

允许用户从shell中对数据库进行身份验证。

     

db.auth()方法可以接受:

     
      
  1. 用户名和密码。

    db.auth( <username>, <password> )
    
  2.   
  3. 包含用户名和密码的用户文档,以及可选的身份验证机制和摘要密码标记。

    db.auth( {
     user: <username>,
     pwd: <password>,
     mechanism: <authentication mechanism>,
     digestPassword: <boolean>
    }
    
  4.         

    返回: db.auth()在身份验证失败时返回0,在操作成功时返回1。