【发布时间】:2015-05-25 11:04:37
【问题描述】:
创建了一个具有readWrite 访问集合的 MongoDB 用户。但我不想将dropCollection 访问权限授予该用户。我该如何实现。
谢谢。
【问题讨论】:
标签: mongodb user-accounts drop-table
创建了一个具有readWrite 访问集合的 MongoDB 用户。但我不想将dropCollection 访问权限授予该用户。我该如何实现。
谢谢。
【问题讨论】:
标签: mongodb user-accounts drop-table
你可以define your custom role为你的目的。
您还可以通过继承自定义角色的 admin.system.roles.roles 字段来扩展现有角色。
这是一个自定义角色示例
{
role: "YourRole",
db: "YourDatabase",
privileges:
[
{
resource: {db: "YourDatabase", collection: "OneOfCollections"},
actions: ["find", "insert", "update", "remove", "createIndex" ...]
},
{
resource: {db: "YourDatabase", collection: "AnotherCollection"},
actions: ["find", "insert", "update", "remove", "createIndex" ...]
},
.
.
.
],
roles:
[
{ role: "RoleYouWantToInherit", db: "TheDatabaseRoleIsDefinedFor" },
...
]
}
【讨论】:
在管理员集合上运行以下查询会出错。
db.runCommand({
createRole:"mynew",
priviliges : [..],
roles: [
{ role: "read", db: "admin" }
],
writeConcern: { w: "majority" , wtimeout: 5000 }
})
显示“错误消息:没有这样的 cmd creareRole”
【讨论】:
creareRole 应该是 createRole。无论如何,这并不是问题的真正答案。它更像是对 n9code 答案的评论,所以如果有的话,它应该去那里。