【问题标题】:How to create User mongodb with specify action如何使用指定操作创建用户 mongodb
【发布时间】:2021-04-13 14:34:23
【问题描述】:

我的数据库有那些 Collection : 用户、交易、余额、... 每个集合管理器由一个 VPS。如何使用指定操作为每个集合创建用户? 示例 VPS A 只能读取集合用户,但无法读取用户中的密码字段。 VPS B 可以读取/创建收款余额,但不能编辑或删除它。谢谢!

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    你需要create a Role,然后你可以grant privileges给它。

    但是,您不能为单个字段指定权限。您只能在数据库和/或集合级别设置它。

    例子:

    use admin
    db.createRole(
       {
          role: "VPS_A",
          roles: [],
          privileges: [
             { resource: { db: "db", collection: "user" }, actions: ["find"] }
          ]
       }
    )
    
    db.createRole(
       {
          role: "VPS_B",
          roles: [],
          privileges: [
             { resource: { db: "db", collection: "balances" }, actions: ["find", "insert"] }
          ]
       }
    )
    
    db.createRole(
       {
          role: "VPS_ReadAll",
          roles: [],
          privileges: [
             // Can read ANY collection in db
             { resource: { db: "db", collection: "" }, actions: ["find"] }
          ]
       }
    )
    
    db.grantRolesToUser("<username>", ["VPS_A", "VPS_B"])
    

    Mongo 还提供Built-In Roles。为了在数据库的所有集合上授予read 权限,您还可以授予:

    db.grantRolesToUser("<username>", [{ role: "read", db: "db" }])
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多