免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
擴(kuò)展RBAC用戶角色權(quán)限設(shè)計(jì)方案

RBAC(Role-Based Access Control,基于角色的訪問控制),就是用戶通過角色與權(quán)限進(jìn)行關(guān)聯(lián)。簡(jiǎn)單地說,一個(gè)用戶擁有若干角色,每一個(gè)角色擁有若干權(quán)限。這樣,就構(gòu)造成“用戶-角色-權(quán)限”的授權(quán)模型。在這種模型中,用戶與角色之間,角色與權(quán)限之間,一般者是多對(duì)多的關(guān)系。(如下圖)

角色是什么?可以理解為一定數(shù)量的權(quán)限的集合,權(quán)限的載體。例如:一個(gè)論壇系統(tǒng),“超級(jí)管理員”、“版主”都是角色。版主可管理版內(nèi)的帖子、可管理版內(nèi)的用戶等,這些是權(quán)限。要給某個(gè)用戶授予這些權(quán)限,不需要直接將權(quán)限授予用戶,可將“版主”這個(gè)角色賦予該用戶。

當(dāng)用戶的數(shù)量非常大時(shí),要給系統(tǒng)每個(gè)用戶逐一授權(quán)(授角色),是件非常煩瑣的事情。這時(shí),就需要給用戶分組,每個(gè)用戶組內(nèi)有多個(gè)用戶。除了可給用戶授權(quán)外,還可以給用戶組授權(quán)。這樣一來,用戶擁有的所有權(quán)限,就是用戶個(gè)人擁有的權(quán)限與該用戶所在用戶組擁有的權(quán)限之和。(下圖為用戶組、用戶與角色三者的關(guān)聯(lián)關(guān)系)

在應(yīng)用系統(tǒng)中,權(quán)限表現(xiàn)成什么?對(duì)功能模塊的操作,對(duì)上傳文件的刪改,菜單的訪問,甚至頁面上某個(gè)按鈕、某個(gè)圖片的可見性控制,都可屬于權(quán)限的范疇。有些權(quán)限設(shè)計(jì),會(huì)把功能操作作為一類,而把文件、菜單、頁面元素等作為另一類,這樣構(gòu)成“用戶-角色-權(quán)限-資源”的授權(quán)模型。而在做數(shù)據(jù)表建模時(shí),可把功能操作和資源統(tǒng)一管理,也就是都直接與權(quán)限表進(jìn)行關(guān)聯(lián),這樣可能更具便捷性和易擴(kuò)展性。(見下圖)

請(qǐng)留意權(quán)限表中有一列“權(quán)限類型”,我們根據(jù)它的取值來區(qū)分是哪一類權(quán)限,如“MENU”表示菜單的訪問權(quán)限、“OPERATION”表示功能模塊的操作權(quán)限、“FILE”表示文件的修改權(quán)限、“ELEMENT”表示頁面元素的可見性控制等。

這樣設(shè)計(jì)的好處有二。其一,不需要區(qū)分哪些是權(quán)限操作,哪些是資源,(實(shí)際上,有時(shí)候也不好區(qū)分,如菜單,把它理解為資源呢還是功能模塊權(quán)限呢?)。其二,方便擴(kuò)展,當(dāng)系統(tǒng)要對(duì)新的東西進(jìn)行權(quán)限控制時(shí),我只需要建立一個(gè)新的關(guān)聯(lián)表“權(quán)限XX關(guān)聯(lián)表”,并確定這類權(quán)限的權(quán)限類型字符串。

這里要注意的是,權(quán)限表與權(quán)限菜單關(guān)聯(lián)表、權(quán)限菜單關(guān)聯(lián)表與菜單表都是一對(duì)一的關(guān)系。(文件、頁面權(quán)限點(diǎn)、功能操作等同理)。也就是每添加一個(gè)菜單,就得同時(shí)往這三個(gè)表中各插入一條記錄。這樣,可以不需要權(quán)限菜單關(guān)聯(lián)表,讓權(quán)限表與菜單表直接關(guān)聯(lián),此時(shí),須在權(quán)限表中新增一列用來保存菜單的ID,權(quán)限表通過“權(quán)限類型”和這個(gè)ID來區(qū)分是種類型下的哪條記錄。

到這里,RBAC權(quán)限模型的擴(kuò)展模型的完整設(shè)計(jì)圖如下:

隨著系統(tǒng)的日益龐大,為了方便管理,可引入角色組對(duì)角色進(jìn)行分類管理,跟用戶組不同,角色組不參與授權(quán)。例如:某電網(wǎng)系統(tǒng)的權(quán)限管理模塊中,角色就是掛在區(qū)局下,而區(qū)局在這里可當(dāng)作角色組,它不參于權(quán)限分配。另外,為方便上面各主表自身的管理與查找,可采用樹型結(jié)構(gòu),如菜單樹、功能樹等,當(dāng)然這些可不需要參于權(quán)限分配。

以上,是從基本的RBAC模型進(jìn)行了擴(kuò)展,具體的設(shè)計(jì)要根據(jù)項(xiàng)目業(yè)務(wù)的需要作調(diào)整。歡迎大家提出批評(píng)意見!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
權(quán)限系統(tǒng)與RBAC模型概述[絕對(duì)經(jīng)典]
全網(wǎng)最全的權(quán)限系統(tǒng)設(shè)計(jì)方案(圖解)
RBAC權(quán)限模型[完整]
ITeye論壇關(guān)于權(quán)限控制的討論
BlogJava - Programmer‘s Life - 漫談權(quán)限系統(tǒng)之技術(shù)策略以及基于RBAC的實(shí)現(xiàn)
這可能是史上最全的權(quán)限系統(tǒng)設(shè)計(jì)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服