1. RBAC权限模型
几乎是最常用的权限模型了,个人开发者/小公司的从0-1搭建一个项目,这个权限模型几乎是属于必学的知识了

RBAC是什么?
Role-Based Access Control 角色访问控制
从定义也不难看出RBAC最重要的便是 Role

提出一个问题
我希望一个用户 User 对某个 菜单 有访问权限——怎么做?
场景抽象出来无非就是
一个用户可以访问n个菜单,一个菜单可以属于n个用户——很典型的 n:n的关系,如果直接控制数据库无非就是 简历一个 user-menu表 用来体现 n:n 的关系

但是真的好吗?我看不然
如果这个情况下对每个用户访问,都需要加入一定权限,同时这个是菜单的权限,如果是数据的权限呢?场景就复杂了

于是RBAC自然引入
基于角色Role的权限控制,能够使得整个权限管理更加清晰
比如我需要 菜单权限、数据权限在RBAC下 Role —— role1
role1会有menu1、menu2权限,那么role就会和menu表集成 role_menu权限表给默认的role赋值权限
role1 会有data1,data2的数据权限 role和data表构成 role_data数据权限表
最后只需要给 user 构成 user_role 便可以给默认的user赋值
我接下来画图来看看他的优势
无role

有role
可以看到,新角色赋值只需要给Role给user赋值即可
 

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐