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")