RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)
这里权限节点表中我多了几个字段;有个父节点ID 和节点类型;这样我可以将角色权限控制更精确,每个版块的某个功能的编辑查看添加等操作都可以细分控制赋予不同操作权限
我下面给每张表加上虚拟数据,更方便理解
这个图的数据分别代表什么呢
上述表的数据就代表了
admin拥有超级管理员角色,而超级管理员角色拥有所有操作的权限
张三拥有文章管理员角色,而文章管理员角色拥有操作文章管理的权限
同理李四拥有操作类别管理的权限
而王五只能操作文章的添加权限,没有对文章的其他操作功能(比如编辑删除等)
如果需要功能权限更加细分,添加相关的数据即可
当然了上述的数据可能有些不太合乎实际情况 只是举这样一个例子,方便理解权限控制的整个逻辑关系