在MongoDB中定义用户和角色

时间:2015-01-15 09:07:31

标签: c# mongodb

我正在尝试在MongoDB中定义一个用户,该用户能够读取数据库中的所有集合,但只能将数据插入到两个集合中:日志和指标。

我使用下一个命令来设置它: 创建一个角色:

use Emerald
db.runCommand({ createRole: "ApiReaderRole",
  privileges: [
    { resource: { db: "Emerald", collection: "Metrics" }, actions:  [ "insert" ] },
    { resource: { db: "Emerald", collection: "Logs" }, actions:  [ "insert" ] }
  ],
  roles: [
    { role: "read", db:"Emerald" }
  ],
  writeConcern: { w: "majority" , wtimeout: 5000 }
})

创建用户:

use Emerald

db.createUser({
    "user": "EmeraldAPIreader",
    "pwd": "emrldApi+",
    "roles": [
        {
            role: "ApiReaderRole",
            db: "Emerald"
        },
        {
            role: "read",
            db: "Emerald"
        }
    ]
},
{
    w: "majority",
    wtimeout: 5000
})

我将所需的凭据添加到连接字符串中,当我尝试将数据插入(通过C#代码)数据到我定义为只读的集合时,它成功(我希望得到未经授权的异常)。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

解决, 我没有在Auth - Client Access Control模式下运行MongoDB服务。 现在,使用Auth标志,一切正常。

相关问题