OA系统七:数据库表设计:RBAC(基于⾓⾊的访问控制)介 绍与核⼼表;
本篇博客的核⼼是在RBAC这种设计理念下如何设计资源表和⾓⾊表;资源表和⾓⾊表如何进⾏关联。 ⽬录
0.RBAC简述:
RBAC(Role-Based Access Control:基于⾓⾊的访问控制):通过RBAC这种全新设计,可以帮助我们在多⽤户的环境下实现对权限的有效控制; 说明:
(1)不同的⾓⾊拥有不同的权限。
(2)这⾥的资源的定义⽐较宽泛、包括:系统的功能可以看成⼀种资源,公司中不同的⽂件可以看成⼀种资源,系统的url⽹址也可以看成是资源。不同的⾓⾊就拥有了对不同资源的访问控制权限。所有的资源都是和⾓⾊绑定的。 (3)⼀个⽤户过来了,如何给这个⽤户分配⼀个⾓⾊嘞需要设计⼀个⽤户表,然后将这个⽤户与⾓⾊绑定,这样在指定⽤户登录系统后,就可以获取到与之对应的⾓⾊,进⽽来获取与⾓⾊匹配的可访问的资源的权限了。无压锅炉
RBAC这种设计在数据库层⾯的设计分析:
1.理解下,RBAC底层数据的连带关系
拉画笔说明:这个图最重要的是理解这种思维。
自动翻板机(1)核⼼就是【⾓⾊表】;
在RBAC中最核⼼的就是【⾓⾊表】,这⾥的⾓⾊根据不同的业务系统,具体的定义也会不同啦。
(2)核⼼思路:所有的资源都和⾓⾊绑定:
⾸先,功能可以看成看成⼀种资源;⽤户也可以看成⼀种资源;⽂档、图⽚等也可以看成⼀种资源;访问权限(url)也可以看成⼀种资源;
然后,在不同的系统,其具体的资源也是不同的。
●【功能菜单】 ⽐如,不同的⾓⾊可以使⽤不同的功能,功能就是⼀种资源,这个资源和⾓⾊绑定。功能菜单称为
防雷开关
Node(结点);
●【⽂档或其他资源】各种⽂档、公函、图⽚等也是资源,这也要和⾓⾊表绑定,不同的⾓⾊可以访问不同的资
预测地震的方法
源;
●【访问权限】这是⼀种特殊的资源。访问资源对应了系统的url,即在系统访问的时候,不同的⾓⾊可以访问的系
统的url的权限是不⼀样的;
基于RBAC的权限设计的核⼼设计就是,将资源和⾓⾊进⾏绑定。
●【系统⽤户】在有的系统中,⼈也可以看成是⼀种资源。⽐如⼀个分销管理系统,湖南区经理⼿下会管理湖南区
销售团队的⼈员,这些⼈员就可以看成是⼀种资源,⾓⾊是经理的⼈就可以可以管理这些普通员⼯。,,,,不同的⾓⾊就可以对这些⼈员(资源)进⾏控制;
因为我们开发的系统,不是什么⼈都可以访问的。在⾓⾊表前⾯还需要设计⼀个【系统⽤户】表,每⼀个要使⽤这个系统的⼈都⾄少有⼀个系统⽤户,系统⽤户中包含了⽤户名和密码。。。。某个⼈在登录系统的时候输⼊⽤户名和密码,其就会在【系统⽤户】表中进⾏校验,校验通过后这个⼈就可以登录系统,然后结合【系统⽤户】表和【⾓⾊表】,这个⼈登录后,系统⽤户就会获取与之对应的⾓⾊,进⽽获取到与之对应的资源了。。。。。。⾃然⼀个使⽤该系统的公司员⼯⼀般最少拥有⼀个系
统⽤户,这样这个⼈才能登录并使⽤这个系统啊。
2.数据库表的创建
(1)创建【sys_role:⾓⾊表】:最核⼼的表
即,主键字段需要勾选⾃动递增。
铝方通吊顶工艺
……………………………………………………
So,与⾓⾊相关联的资源有哪些?也需要为其创建对应的表。
(2)创建【“功能”这种资源】的相关的表
(2.1)创建【sys_node:系统功能表】:功能也是周边的⼀种资源啦
⽐如,现在在sys_role⾓⾊表,sys_node功能表中添加⼀些⽰例性的数据
(2.附)创建【sys_role_node:⾓⾊和功能关联表】:建⽴【功能】和【⾓⾊】之间的关系的表
这张表主要⽬的是,来表达【sys_role⾓⾊表】和【sys_node功能表】的对应关系
在sys_role_node中添加⼀些⽰例性的数据:
这张关系表是RBAC的核⼼所在,通过这个关系表我们就能弄清哪个⾓⾊可以使⽤哪些资源了。
……………………………………………………
(3)创建【“系统⽤户”这种资源】的相关的表
(3.1)创建【adm_department:部门表】:属于(周边的)系统⽤户这个⼤类;⽽系统⽤户也是周边的⼀种资源啦
⽤户可以看成是⼀个⾓⾊所需的资源,不同的⽤户拥有不同的⾓⾊;某⼀个⾓⾊下可以存在多个不同的⽤户(⼀个公司会有多个⽤户是管理岗这个⾓⾊,也有多个⽤户是业务岗这个⾓⾊)。
部门表:
……………………………………………………
(3.2)创建【adm_employee:员⼯表】:属于(周边的)系统⽤户这个⼤类;⽽系统⽤户也是周边的⼀种资源啦