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