4

创建了一个可以readWrite访问集合的 MongoDB 用户。但我不想授予dropCollection该用户访问权限。我该如何实现。

谢谢。

4

2 回答 2

2

您可以根据自己的目的定义自定义角色

您还可以通过继承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" },
          ...
      ]
}
于 2015-05-25T11:16:06.280 回答
0

@n9code

在管理员集合上运行以下查询会出错。

db.runCommand({
    createRole:"mynew",
    priviliges : [..],
    roles: [
    { role: "read", db: "admin" }
  ],
  writeConcern: { w: "majority" , wtimeout: 5000 }
})

显示“错误消息:没有这样的 cmd creareRole”

于 2015-05-25T16:03:59.563 回答