如何从 MongoDB 中的用户删除 dropCollection 访问权限?
Posted
技术标签:
【中文标题】如何从 MongoDB 中的用户删除 dropCollection 访问权限?【英文标题】:How to remove dropCollection access right from users in MongoDB? 【发布时间】:2015-05-25 11:04:37 【问题描述】:创建了一个具有readWrite
访问集合的 MongoDB 用户。但我不想将dropCollection
访问权限授予该用户。我该如何实现。
谢谢。
【问题讨论】:
【参考方案1】:你可以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" ,
...
]
【讨论】:
【参考方案2】:@n9code。
在管理员集合上运行以下查询会出错。
db.runCommand(
createRole:"mynew",
priviliges : [..],
roles: [
role: "read", db: "admin"
],
writeConcern: w: "majority" , wtimeout: 5000
)
显示“错误消息:没有这样的 cmd creareRole”
【讨论】:
嗨 Bhargav - 我想你一定是在命令中打错了,creareRole
应该是 createRole
。无论如何,这并不是问题的真正答案。它更像是对 n9code 答案的评论,所以如果有的话,它应该去那里。以上是关于如何从 MongoDB 中的用户删除 dropCollection 访问权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何从js中的数组中删除元素[元素来自mongodb] [重复]