岳兵
摘要:根據(jù)RBAC模型的基本思想,設(shè)計(jì)用于指導(dǎo)開發(fā)用戶權(quán)限管理的參考模型。該模型引入了職位和組織機(jī)構(gòu)對(duì)象,解決對(duì)用戶進(jìn)行直接和間接授權(quán)的問題,并對(duì)用戶的權(quán)限進(jìn)行精確的差異化管理。關(guān)鍵詞:RBAC;用戶權(quán)限;數(shù)據(jù)模型;信息系統(tǒng)
信息資源安全的保護(hù)以及不泄露成為企事業(yè)單位推廣信息化過程中最重要的一環(huán),因此權(quán)限系統(tǒng)模型成為信息系統(tǒng)分析和設(shè)計(jì)階段的重要組成部分。成功的權(quán)限系統(tǒng)設(shè)計(jì)對(duì)信息系統(tǒng)的安全性和用戶的職權(quán)責(zé)任起著極其重要的作用,權(quán)限系統(tǒng)的最終目的是保護(hù)軟件系統(tǒng)的安全、保護(hù)信息的安全、按照實(shí)際角色對(duì)應(yīng)相應(yīng)權(quán)限。本文基于RBAC的基本思想研究與設(shè)計(jì)信息系統(tǒng)中的用戶權(quán)限數(shù)據(jù)模型。
1 RBAC模型簡(jiǎn)介
基于角色管理權(quán)限的思想早在70年代就已經(jīng)出現(xiàn),其基本指導(dǎo)思想(見圖1)是通過引入了角色(role)的新概念來實(shí)施訪問控制策略,不同的角色和它所具有的權(quán)限許可相互聯(lián)系。整個(gè)系統(tǒng)的訪問控制分兩步實(shí)現(xiàn):首先對(duì)角色進(jìn)行分配,將用戶與角色聯(lián)系起來,通過角色將用戶與訪問權(quán)限從邏輯上分離開;然后指定權(quán)限,將角色與訪問權(quán)限聯(lián)系起來。用戶(user)作為某些角色的成員,獲得角色所擁有的權(quán)限。角色可以根據(jù)實(shí)際的職位、崗位、單位和組織來劃分,而用戶根據(jù)所承擔(dān)的不同權(quán)利和義務(wù)來結(jié)合實(shí)際情況授權(quán)相應(yīng)的角色。從用戶到角色的管理,簡(jiǎn)化了權(quán)限分配的復(fù)雜性,提高了安全管理的效率和質(zhì)量。角色代表了訪問主體所具有的職權(quán)和責(zé)任,系統(tǒng)管理員負(fù)責(zé)將訪問許可權(quán)分配給一定的角色,每個(gè)用戶可以扮演不同的角色,這樣就使得每一個(gè)用戶都能夠獲得所扮演角色所擁有的訪問許可權(quán)。
2 數(shù)據(jù)模型詳細(xì)設(shè)計(jì)
2.1建模工具的選擇 Power Designer是Sybase公司的CASE工具集,使用它可以方便地對(duì)管理信息系統(tǒng)進(jìn)行分析設(shè)計(jì),他幾乎包括了數(shù)據(jù)庫模型設(shè)計(jì)的全過程。利用Power Designer可以制作數(shù)據(jù)流程圖、概念數(shù)據(jù)模型、物理數(shù)據(jù)模型,還可以為數(shù)據(jù)倉庫制作結(jié)構(gòu)模型,也能對(duì)團(tuán)隊(duì)設(shè)計(jì)模型進(jìn)行控制。他可以與許多流行的軟件開發(fā)工具,例如PowerBuilder、Delphi、VB等相配合使開發(fā)時(shí)間縮短和使系統(tǒng)設(shè)計(jì)更優(yōu)化。
2.2權(quán)限模型設(shè)計(jì)方案的基本思路 根據(jù)RBAC的基本思想,同時(shí)借助Power Designer提供的建模工具,設(shè)計(jì)出可以用于信息管理系統(tǒng)的用戶權(quán)限模型。該模型由用戶表、權(quán)限表、權(quán)限分組表、用戶權(quán)限表、角色表、角色權(quán)限表、組織機(jī)構(gòu)表、區(qū)域表、職位表、用戶職位表、職位權(quán)限表、職位角色表、員工表構(gòu)成。
2.2.1用戶的權(quán)限 分為直接授權(quán)和間接授權(quán),直接授予的權(quán)限來自于系統(tǒng)管理員將系統(tǒng)中的功能權(quán)限賦予指定的用戶;間接授予的權(quán)限來自于給用戶賦予的職位而獲得的權(quán)限,而職位的權(quán)限又來自于其對(duì)應(yīng)的角色。職位必須建立在對(duì)應(yīng)的組織機(jī)構(gòu)指定節(jié)點(diǎn)上面,其權(quán)限來源也分為直接授權(quán)和間接授權(quán):直接授予的權(quán)限來自于系統(tǒng)管理員直接把系統(tǒng)中功能權(quán)限賦予組織機(jī)構(gòu)上面指定的職位;間接授予的權(quán)限來自于給職位賦予的角色而獲得的權(quán)限(角色沒有和對(duì)應(yīng)組織機(jī)構(gòu)相對(duì)應(yīng))。圖2顯示了用戶、職位、角色、權(quán)限的關(guān)系。
2.2.2用戶和職位的權(quán)限 分為直接授予和間接授予,該方法可以對(duì)用戶、職位的權(quán)限進(jìn)行細(xì)微精確的控制,從而達(dá)到對(duì)用戶、職位進(jìn)行差異化管理。
在信息管理系統(tǒng)的使用過程中,要對(duì)擁有相同職位用戶中的部分用戶功能權(quán)限進(jìn)行修改,而又不能影響該職位下到其他用戶的權(quán)限,對(duì)用戶直接授予權(quán)限就體現(xiàn)出其靈活性。這種情況下,該職位下的所有用戶的權(quán)限都得到了修改,而沒達(dá)到修改該職位下部分用戶權(quán)限的要求。由于在該權(quán)限模型下角色和職位是一對(duì)多的關(guān)系,角色權(quán)限的修改,還會(huì)影響到擁有此角色其他職位對(duì)應(yīng)用戶的權(quán)限,更加沒達(dá)到實(shí)際的目的。當(dāng)對(duì)組織機(jī)構(gòu)上的某一職位下的所有用戶的權(quán)限進(jìn)行修改,而又不能影響系統(tǒng)中其他用戶的權(quán)限,只能對(duì)該職位的權(quán)限進(jìn)行直接授予,如果通過間接授予權(quán)限的方式修改職位的權(quán)限,必定需要修改職位對(duì)應(yīng)角色的權(quán)限,此方式極有可能會(huì)造成系統(tǒng)中其他用戶權(quán)限的變化。
在實(shí)際的信息管理系統(tǒng)項(xiàng)目開發(fā)中,用戶的權(quán)限包括授予用戶的直接權(quán)限和間接權(quán)限的并集,而用戶的間接權(quán)限來至于用戶對(duì)應(yīng)職位擁有的直接權(quán)限和間接權(quán)限,通過這樣的方法獲得用戶權(quán)限才是用戶最終擁有的所有權(quán)限集[1]。
2.3權(quán)限模型數(shù)據(jù)字典的設(shè)計(jì) 用戶表(xt_user)主要由用戶ID(主鍵)、員工ID、登錄名稱、創(chuàng)建者ID、登錄密碼五個(gè)字段構(gòu)成。員工與用戶的關(guān)系為一對(duì)多。
權(quán)限表(action_limit)主要由權(quán)限ID(主鍵)、權(quán)限分組ID、權(quán)限名稱、權(quán)限描述、狀態(tài)五個(gè)字段構(gòu)成。權(quán)限名稱里面儲(chǔ)存的是展現(xiàn)層視圖控件的ID或一個(gè)網(wǎng)頁URL,可以根據(jù)實(shí)際情況決定存儲(chǔ)相關(guān)值。權(quán)限分組ID表示的是權(quán)限的分類,比如多個(gè)權(quán)限屬于系統(tǒng)維護(hù)類。
權(quán)限分組表(action_column)主要是由權(quán)限分組ID(主鍵)、分組名稱、狀態(tài)三個(gè)字段組成。
用戶權(quán)限表(action_xt_user)主要由用戶ID、權(quán)限ID、狀態(tài)三個(gè)字段構(gòu)成,用戶ID和權(quán)限ID構(gòu)成聯(lián)合主鍵。該表存儲(chǔ)的是直接授予用戶的權(quán)限。
角色表(group_manager)主要由角色I(xiàn)D(主鍵)、角色名稱、角色描述、狀態(tài)四個(gè)字段構(gòu)成。
角色權(quán)限表(action_group)主要由權(quán)限ID、角色I(xiàn)D、狀態(tài)三個(gè)字段構(gòu)成,角色I(xiàn)D和權(quán)限ID構(gòu)成聯(lián)合主鍵。
組織機(jī)構(gòu)表(bss_org)主要由機(jī)構(gòu)ID(主鍵)、機(jī)構(gòu)名稱、上級(jí)機(jī)構(gòu)ID、地區(qū)ID、狀態(tài)五個(gè)字段構(gòu)成。在實(shí)際軟件設(shè)計(jì)開發(fā)中可以對(duì)該表進(jìn)行擴(kuò)展,比如添加機(jī)構(gòu)類型字段,用于區(qū)分每個(gè)機(jī)構(gòu)屬于哪種類型的機(jī)構(gòu)(如行政、后勤、臨床等)。
區(qū)域表(area_info)主要由地區(qū)ID(主鍵)、上級(jí)地區(qū)ID、地區(qū)名稱、地區(qū)代碼、狀態(tài)五個(gè)字段構(gòu)成。
職位表(job)主要由職位ID(主鍵)、機(jī)構(gòu)ID、職位名稱、狀態(tài)四個(gè)字段構(gòu)成。
用戶職位表(xt_user_job)主要由用戶ID、職位ID、狀態(tài)三個(gè)字段構(gòu)成,用戶ID和職位ID構(gòu)成聯(lián)合主鍵。
職位權(quán)限表(action_job)主要由職位ID、權(quán)限ID、狀態(tài)三個(gè)字段構(gòu)成,職位ID和權(quán)限ID構(gòu)成聯(lián)合主鍵。表中存儲(chǔ)的事直接授予職位的權(quán)限
職位角色表(job_group_manager)主要由職位ID、角色I(xiàn)D、狀態(tài)三個(gè)字段構(gòu)成,職位ID和角色I(xiàn)D構(gòu)成聯(lián)合主鍵。
員工表(staff)主要由員工ID(主鍵)、機(jī)構(gòu)ID、員工編碼、員工名稱、聯(lián)系電話、地址、性別、身份證號(hào)碼構(gòu)成。在實(shí)際軟件設(shè)計(jì)開發(fā)中可以對(duì)該表進(jìn)行擴(kuò)展以滿足實(shí)際需要。
3 結(jié)束語
本文根據(jù)RBAC模型的基本思想,設(shè)計(jì)出用于指導(dǎo)開發(fā)信息系統(tǒng)用戶權(quán)限的參考模型,能夠應(yīng)用于基于B/S或C/S架構(gòu)的信息管理系統(tǒng)項(xiàng)目開發(fā)中,并且可以和實(shí)際的項(xiàng)目情況相結(jié)合,對(duì)該模型進(jìn)行擴(kuò)展,開發(fā)出符合數(shù)據(jù)庫設(shè)計(jì)要求,同時(shí)和實(shí)際業(yè)務(wù)相符合的應(yīng)用系統(tǒng)。
參考文獻(xiàn):
[1]劉曉林,郭龍.基于RBAC的用戶權(quán)限管理的研究與實(shí)現(xiàn)[C].安微省合肥市:電腦知識(shí)與技術(shù),2013.
編輯/成森