创建了一个可以readWrite
访问集合的 MongoDB 用户。但我不想授予dropCollection
该用户访问权限。我该如何实现。
谢谢。
创建了一个可以readWrite
访问集合的 MongoDB 用户。但我不想授予dropCollection
该用户访问权限。我该如何实现。
谢谢。
您可以根据自己的目的定义自定义角色。
您还可以通过继承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”