RBAC
RBAC
Role Base Access Control 是目前最流行的权限设计模型,RBAC 在 User 和 Permission 之间引入了 Role 的概念。
- 每个 User 可以关联一个或者多个 Role
- 每个 Role 可以关联一个或者多个 Permission
MongoDB便是采用RBAC模型,对数据库的操作都划分成了权限[^1],如下所示:
| 权限标识 | 说明 |
|---|---|
| find | 具有此权限的用户可以运行所有和查询有关的命令,如:aggregate、checkShardingIndex、count等。 |
| insert | 具有此权限的用户可以运行所有和新建数据有关的命令:insert和create等。 |
| collStats | 具有此权限的用户可以对指定database或collection执行collStats命令。 |
| viewRole | 具有此权限的用户可以查看指定database的角色信息。 |
| … |
基于这些权限,MongoDB提供了一些预定义的角色(MongoDB预定义角色文档,用户也可以自己定义角色):
| 角色 | find | insert | collStats | viewRole | … |
|---|---|---|---|---|---|
| read | ✔ | ✔ | … | ||
| readWrite | ✔ | ✔ | ✔ | … | |
| dbAdmin | ✔ | ✔ | … | ||
| userAdmin | ✔ | … |
最后授予用户不同的角色,就可以实现不同粒度的权限分配了。
Linked Mentions
-
No backlinks found.