rmdir.cn

db.createRole()

创建自定义角色

语法

db.createRole({ role: "<name>", privileges: [...], roles: [...] })

说明

在 MongoDB 中创建自定义角色,定义精细化的权限集合。自定义角色可包含内置角色、其他自定义角色的权限以及对具体集合的操作权限(find、insert、update、remove 等)。实现最小权限原则。

参数

  • role必填

    角色名称

  • privileges必填

    权限列表,每项含 resource 和 actions

  • roles

    继承的角色(可选)

  • authenticationRestrictions

    认证限制

示例

创建只读角色

仅对 users 集合有 find 权限

db.createRole({
  role: "usersReader",
  privileges: [{ resource: { db: "mydb", collection: "users" }, actions: ["find"] }],
  roles: []
})

创建应用角色

对应用所需集合的精确权限

db.createRole({
  role: "appWorker",
  privileges: [
    { resource: { db: "mydb", collection: "users" }, actions: ["find", "insert"] },
    { resource: { db: "mydb", collection: "orders" }, actions: ["find", "update"] }
  ],
  roles: []
})

查看/删除角色

管理已创建的角色

db.getRoles({ showPrivileges: true })
db.dropRole("appWorker")

参考资料