三表:用户表、角色表、权限表,用户表基本一开始就存在
三表之间的关系
用户表-角色表:多对多
用户表.id可以有多个角色表.id,角色表.id也可以用多个用户表.id
角色表与权限表:多对多
角色表.id可以有多个权限表.id,权限表.id可以有多个角色id
标准RBAC模型的表是比较简单了,要表示用户-角色-权限三者之前的关系,首先要创建用户表、角色表、权限表,用户和角色是多对多的关系,角色和权限是多对多的关系,需要再创建两章关系表,分别是用户-角色关系表和角色-权限关系表。这六张表的ER图如下所示
理想RBAC模型表设计
理想的RBAC模型是标准RBAC模型经过多次扩展得到的,表结构也会比较复杂,因为要维护很多关系,如下图所示是理想的RBAC模型的ER图:
功能数据权限:
用户-角色-权限的设计方式是最为简单的设计方式。把操作权限分配给角色,新增一个新的角色以后,就会给这个新增的角色分配相应的操作权限,包括操作权限和数据查看权限
功能权限定义:为可见、可以操作的功能范围。控制用户对字段的可见性,可编辑性
- 读写权限:用户具备该字段的最大权限,可见可编辑列表和详情页该字段
- 只读权限:可见列表和详情页该字段。但不可编辑
- 不可见权限:不可见不可编辑列表和详情页该字段