我有数据库traffic
,并且有两个集合readMe
和readWriteMe
。
我想在mongoDB
中创建一个可以执行以下操作的用户 -
readMe
集合。readWriteMe
集合。readWrite
授权。我有角色说myRole
- 我尝试为此角色提供以下权限
privileges: [
{ resource: { db: "traffic", collection: "" }, actions: [ "find", "insert", "remove" ] },
{ resource: { db: "traffic", collection: "readMe"}, actions: ["find"]},
]
但它也允许插入readMe
集合中!
这提出了一个问题 - 在权限冲突的情况下会发生什么。哪个更优先等。
答案 0 :(得分:0)
我认为这是因为您没有在第一个权限上指定集合名称。尝试:
privileges: [
{ resource: { db: "traffic", collection: "readWriteMe" }, actions: [ "find", "insert", "remove" ] },
{ resource: { db: "traffic", collection: "readMe"}, actions: ["find"]}
]
如果您希望同一个用户创建集合并能够读取它们,我认为如果没有他能够以某种方式读取和写入您的readMe
集合,就无法授予足够的权限。您可以尝试将createCollection与grantRole一起应用,但这样可以让用户自己为readMe集合自行分配readWrite角色