【问题标题】:How to remove dropCollection access right from users in MongoDB?如何从 MongoDB 中的用户删除 dropCollection 访问权限?
【发布时间】:2015-05-25 11:04:37
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: mongodb user-accounts drop-table


    【解决方案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 答案的评论,所以如果有的话,它应该去那里。
      猜你喜欢
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多