我正在尝试在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#代码)数据到我定义为只读的集合时,它成功(我希望得到未经授权的异常)。 我做错了什么?