如何从MongoDB用户中删除dropCollection访问权限?

4

创建了一个MongoDB用户,并授予其对集合的readWrite访问权限。但我不想给该用户dropCollection的访问权限。我该怎么实现呢?

谢谢。

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" },
          ...
      ]
}

0

@n9code

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

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

显示“错误信息:没有这个命令creareRole”


嗨,Bhargav - 我认为你在命令中打错了一个字,creareRole 应该是 createRole。 无论如何,这并不是对问题的回答;它更像是对 n9code 回答的评论,所以如果需要的话应该放到那里。 - Vince Bowdren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接