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 | ✔ | … |
最后授予用户不同的角色,就可以实现不同粒度的权限分配了。
Author Houmin Wei
Publish March 14, 2023
LastMod August 27, 2026
License 本作品采用 CC BY-NC-ND 4.0 许可协议进行许可,转载时请注明原文链接
如果你在浏览博客的过程中发现了任何问题,欢迎在对应文章下评论。如果你有其他事情想要咨询,可以通过邮件联系我。
Linked Mentions