RBAC用戶角色權(quán)限設(shè)計(jì)方案非常好_第1頁
RBAC用戶角色權(quán)限設(shè)計(jì)方案非常好_第2頁
RBAC用戶角色權(quán)限設(shè)計(jì)方案非常好_第3頁
RBAC用戶角色權(quán)限設(shè)計(jì)方案非常好_第4頁
RBAC用戶角色權(quán)限設(shè)計(jì)方案非常好_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

角色表角色皿tUffl施釘角色名孫詠M的頌)角色表角色皿tUffl施釘角色名孫詠M的頌)用戶IDNUTTER<fkl>用色I(xiàn)DHITHER<fk2>權(quán)限表權(quán)限1口:MB即我限標(biāo)識(shí)YftKCJiftK2(50)FK_RP_E^F_EOEEJK_M.REF/tRIVILEGE角色權(quán)限美滕表mJMBEE<fkl>函虹口HUMEEH<£k2>擴(kuò)展RBAC用戶角色權(quán)限設(shè)計(jì)方案RBAQRole-BasedAccessControl,基于角色的訪問控制),就是用戶通過角色與權(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)系。(如下圖)用戶表用戶U)澗我<nk>用戶名角色是什么?可以理解為一定數(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)系)用產(chǎn)組用尸型tliHIMBER3用尸地名秫明匝岫R2(50)交用戶組名稱mEERFK_Ue\^F_USERFK_UO^用戶角色關(guān)聯(lián)表用FK_Ue\^F_USERFK_UO^用戶角色關(guān)聯(lián)表用EmJMBER<fkl>角色I(xiàn)DTODER<fk2>.EOLE(圖;引入用尸組?FK_G1T昵GROUTFI用戶鼠與用戶關(guān)聯(lián)衰用尸組TD2JflJMBER<£kl>用股LD2NUMBER<f>2>FIC_GUJE?F_U3ERt.用戶斑用尸工DNUMBER<nk>用戶名VAKCHMtE(3(J)匚GR_W.GR0UF\用占蛆甭色美暇表用戶迪LBTOBER<£kl>角色I(xiàn)DIWMBER<ft2>/FKa用FEOLE,廣角色表?色I(xiàn)口聞儂雕<Efe>角色名他JiCKJ四頷)在應(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ò)展性。(見下圖)菜單?父策單IDWW通QQ'VAJRC出MGO]VAEC1UR2?J)HTOER頁面元素史而無索"m.WIEER頁面元素編碼『應(yīng)mi2csm立性?

文件名文件表MMEEE菜單?父策單IDWW通QQ'VAJRC出MGO]VAEC1UR2?J)HTOER頁面元素史而無索"m.WIEER頁面元素編碼『應(yīng)mi2csm立性?

文件名文件表MMEEE遍mcnw^0Q)TMHWFK_FE_REF_^LEMESTFHJE根限文件關(guān)聯(lián)表權(quán)限菜單美聯(lián)表NUMBER<£>2>藁單工口NUMEEH<£>1>機(jī)陽頁面元索關(guān)聯(lián)表權(quán)於DMBEft<fk2>頁面元素IDMBEft<atl>棚肛口NUMBER<fkl>

文件1口HUMIER<£12>kffiffi瓊7RET權(quán)限表楨⑶虹DMfir權(quán)限類型ykRC][Al2(5OjRIVILEGE功施操作表推但口操作名稱操作編碼攔敲呻睇父操作[0則坦Eg<Pfc>廂笳E2百燈)『甌的2方口)7AHCHJLR218口)NWEKFK_FO_ILEF[肛LEGE*

fE_FO_REFjJrmTION權(quán)F嬲作關(guān)聯(lián)表榔血DHUMBER<fld)

察,阿口MEER<ft2><圖;權(quán)限分類)請(qǐng)留意權(quán)限表中有一列“權(quán)限類型”,我們根據(jù)它的取值來區(qū)分是哪一類權(quán)限,如“MENU表示菜單的訪問權(quán)限、"OPERATEN表示功能模塊的操作權(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ū)分是種類型下的哪條記錄。到這里,RBAOX限模型的擴(kuò)展模型的完整設(shè)計(jì)圖如下:用尸組菜單表門面元素文件表用戶組I】NUMBER用門用戶組名歌¥曲瓶盟猖口〕父用尸蛆名都NUMBER菜單[工4刑卿5h>兼單名稱VAKCHAR2G0.1菜單用LVAKCHAB2160)父菜單[口NUMEER頁面元素J]MIBEK<pk>支面元素編碼VASCHM12(50)支件工DNUOER<pk>文件名1rMe用尸組菜單表門面元素文件表用戶組I】NUMBER用門用戶組名歌¥曲瓶盟猖口〕父用尸蛆名都NUMBER菜單[工4刑卿5h>兼單名稱VAKCHAR2G0.1菜單用LVAKCHAB2160)父菜單[口NUMEER頁面元素J]MIBEK<pk>支面元素編碼VASCHM12(50)支件工DNUOER<pk>文件名1rMe的L四)文件路徑VABCHWIS?0)GBDUFFVE_H£f_ELEMEKT根眼文件關(guān)府表用戶蛆身用戶美展裝用盧蛆TEN而藏R不工\

用戶工口2HTOER<帖>FILGUJlJF_USER用尸妻用戶工,:m州卿疝用戶名VARCHAB2:(30)EDLE權(quán)限菜率美底表權(quán)限IDNUMBER<fk2>弗童[口HUMBER<£kl>祝F艮頁面元素美聯(lián)表權(quán)除口WEEK<fk£>

頁面元索IDWEER<£kl>枚PHDHUMBER<fkl>

文件IB刑MEER<£k2>FK_PW_T<EF^RIVIWffE-?向YILEGE表Hr板BBEIiHl閭BER融>挪艮類型VAECMWi:50jFK_UR_FKR?REFPRIVILEGE用戶角色關(guān)聯(lián)表用戶IDnumbeF<£kl>角色I(xiàn)DHUMEER<£k2>角色權(quán)限關(guān)聯(lián)表

^felDSUNBIR<fkl>

板E虹口NI.INBZR<£k2>功能操作表攫^)WUfflEER<ph>攆"JS稱YABCMAB2(50)摭作褊指科及?±AE2(.50,)攔截垂訪!啜^ARCHAR2昭0J父操作IDHBNBHRFKPOF』EdRIYILE飆j耶_PU_KEFfERma棚虹口imlBEH<fkl>操作IDMSER(圖:燈AC權(quán)限模型擴(kuò)展)隨著系統(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)限分配。以上,是從基本的RBAG真型進(jìn)行了擴(kuò)展,具體的設(shè)計(jì)要根據(jù)項(xiàng)目業(yè)務(wù)的需要作調(diào)整。歡迎大家提出批評(píng)意見!這是我后面加的:具體實(shí)現(xiàn)的話,可通過表的關(guān)聯(lián)查詢得到,根據(jù)用戶ID查詢到它擁有的角色,再通過角色查詢到它所擁有的權(quán)限。例如,查詢某個(gè)用戶所有授權(quán)的菜單:selectm.*frommenumwhereexists(select'X'fromprivilege_menupm,privilegeepwherepm.privilege_id=p.privilege_idandp.privilege_type='MENU'andpm.menu_id=m.menu_idandexists(s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論