一、什么是RBAC模型
RBAC(Role-Based Access Control)即:基于角色的權(quán)限控制。通過(guò)角色關(guān)聯(lián)用戶,角色關(guān)聯(lián)權(quán)限的方式間接賦予用戶權(quán)限。

二、RBAC模型的分類
RBAC模型可以分為:RBAC0、RBAC1、RBAC2、RBAC3 四種。
1、RBAC0模型
最簡(jiǎn)單的用戶、角色、權(quán)限模型。這里面又包含了2種:
用戶和角色是多對(duì)一關(guān)系,即:一個(gè)用戶只充當(dāng)一種角色,一種角色可以有多個(gè)用戶擔(dān)當(dāng)。
用戶和角色是多對(duì)多關(guān)系,即:一個(gè)用戶可同時(shí)充當(dāng)多種角色,一種角色可以有多個(gè)用戶擔(dān)當(dāng)。
2、RBAC1模型
相對(duì)于RBAC0模型,增加了子角色,引入了繼承概念,即子角色可以繼承父角色的所有權(quán)限。


3、RBAC2模型
基于RBAC0模型,增加了對(duì)角色的一些限制:角色互斥、基數(shù)約束、先決條件角色等。
角色互斥:同一用戶不能分配到一組互斥角色集合中的多個(gè)角色,互斥角色是指權(quán)限互相制約的兩個(gè)角色。案例:財(cái)務(wù)系統(tǒng)中一個(gè)用戶不能同時(shí)被指派給會(huì)計(jì)角色和審計(jì)員角色。
基數(shù)約束:一個(gè)角色被分配的用戶數(shù)量受限,它指的是有多少用戶能擁有這個(gè)角色。例如:一個(gè)角色專門為公司CEO創(chuàng)建的,那這個(gè)角色的數(shù)量是有限的。
先決條件角色:指要想獲得較高的權(quán)限,要首先擁有低一級(jí)的權(quán)限。例如:先有副總經(jīng)理權(quán)限,才能有總經(jīng)理權(quán)限。
運(yùn)行時(shí)互斥:例如,允許一個(gè)用戶具有兩個(gè)角色的成員資格,但在運(yùn)行中不可同時(shí)激活這兩個(gè)角色。

4、RBAC3模型
稱為統(tǒng)一模型,它包含了RBAC1和RBAC2,利用傳遞性,也把RBAC0包括在內(nèi),綜合了RBAC0、RBAC1和RBAC2的所有特點(diǎn)。

三、什么是權(quán)限
1、頁(yè)面權(quán)限:
所有系統(tǒng)都是由一個(gè)個(gè)的頁(yè)面組成,頁(yè)面再組成模塊,用戶是否能看到這個(gè)頁(yè)面的菜單、是否能進(jìn)入這個(gè)頁(yè)面就稱為頁(yè)面權(quán)限。
如下圖:

客戶列表、客戶黑名單、客戶審批頁(yè)面組成了客戶管理這個(gè)模塊。對(duì)于普通用戶,不能進(jìn)行審批操作,即無(wú)客戶審批頁(yè)面權(quán)限,在他的賬號(hào)登錄后側(cè)邊導(dǎo)航欄只顯示客戶列表、客戶黑名單兩個(gè)菜單。
2、操作權(quán)限:
用戶凡是在操作系統(tǒng)中的任何動(dòng)作、交互都是操作權(quán)限,如增刪改查等。
3、數(shù)據(jù)權(quán)限:
一般業(yè)務(wù)管理系統(tǒng),都有數(shù)據(jù)私密性的要求:哪些人可以看到哪些數(shù)據(jù),不可以看到哪些數(shù)據(jù)。
簡(jiǎn)單舉個(gè)例子:某系統(tǒng)中有銷售部門,銷售專員負(fù)責(zé)推銷商品,銷售主管負(fù)責(zé)管理銷售專員日常工作,經(jīng)理負(fù)責(zé)組織管理銷售主管作業(yè)。
如下圖:

按照實(shí)際理解,‘銷售專員張三’登錄時(shí),只能看到自己負(fù)責(zé)的數(shù)據(jù);銷售主管2登錄時(shí),能看到他所領(lǐng)導(dǎo)的所有業(yè)務(wù)員負(fù)責(zé)的數(shù)據(jù),但看不到其他團(tuán)隊(duì)業(yè)務(wù)員負(fù)責(zé)的數(shù)據(jù)。
要實(shí)現(xiàn)數(shù)據(jù)權(quán)限有多種方式:
1.? ?可以利用RBAC1模型,通過(guò)角色分級(jí)來(lái)實(shí)現(xiàn)。
2.? 在‘用戶-角色-權(quán)限’的基礎(chǔ)上,增加用戶與組織的關(guān)聯(lián)關(guān)系,用組織決定用戶的數(shù)據(jù)權(quán)限。
具體如何做呢?
①組織層級(jí)劃分:

②數(shù)據(jù)可視權(quán)限規(guī)則制定:
上級(jí)組織只能看到下級(jí)組織員工負(fù)責(zé)的數(shù)據(jù),而不能看到其他平級(jí)組織及其下級(jí)組織的員工數(shù)據(jù)等。