RBAC
首先看一下什么是RBAC(基于角色的访问控制):百度百科
简单理解:将角色与具体的权限绑定(绑定后极少修改),如此某个角色对应有哪些权限(能干什么,不能干什么),然后再给用户分配所需要的角色,这样,每个分配了不同角色的用户也就有了不同的能力。
实体间的关系
现在有三个实体:用户、角色、权限,首先我们搞清楚他们之间的关系是什么
假设
用户有:张三、李四、王五
角色有:超管、普管、会员
权限有:删帖、看帖、
张三可以既是超管又是普管;张三、李四都可以是普管;=》 用户与角色多对多。
超管既可以删帖又可以看帖;超管、普管、会员都可以看帖;=》角色与权限多对多。
需要维护的表
由上可知,为了维护这三个实体(用户、角色、权限),另外还要维护两个多对多的关系,我们便有了五张表,也就是RBAC经典五张表:
用户表 user_info
用户角色关系表 user_role_info
角色表 role_info
角色权限关系表 role_permission_info
权限表 permission_info