我试图在MongoDB中定义一个用户,它能够读取DB中的all集合,但能够将数据插入到两个集合:日志和度量。
我使用下面的命令来设置它:创建一个角色:
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#代码)将一个数据插入到我定义为只读的集合中时,它会成功(我希望得到一个未经授权的异常)。我做错了什么?
发布于 2015-01-18 12:49:36
解决了,我没有在MongoDB模式下运行客户端访问控制服务。现在,使用Auth标志,一切都很好。
https://stackoverflow.com/questions/27959932
复制相似问题