鄭志明
摘要:當前在各種B/S系統(tǒng)中為了保證系統(tǒng)的各方面安全,對不同用戶的訪問進行授權(quán)驗證是十分必要的,其中權(quán)限管理起到7非常重要的作用。本文對系統(tǒng)中通用權(quán)限模塊的設計進行了簡明的闡述,首先通過分析給出了權(quán)限模塊中的各個通用實體,接著討論了實體與實體之間的關(guān)系,最后設計出了數(shù)據(jù)庫的基本表結(jié)構(gòu)及其關(guān)系。
關(guān)鍵詞:權(quán)限管理 角色 用戶 權(quán)限
引言
當前在各種系統(tǒng)中,為了保護系統(tǒng)的安全,對每個系統(tǒng)用戶的職責進行明確并對其訪問權(quán)限進行控制變得越來越重要。在所有后臺系統(tǒng)中權(quán)限管理都是一個重要的組成部分,尤其是在B/S系統(tǒng)中,因為B/S系統(tǒng)大部分使用的是不太安全的Http協(xié)議,所以在B/S系統(tǒng)中加入權(quán)限管理模塊來保證系統(tǒng)數(shù)據(jù)和功能的安全是非常有必要的。
不同的系統(tǒng)對系統(tǒng)功能的需求是不一樣的,當然對用戶的權(quán)限管理模塊需求也不一樣,本文研究的是B/S系統(tǒng)中通用權(quán)限模塊的設計,主要通過挖掘出不同系統(tǒng)的共性,設計出一種通用的方法,從而可以被不同的系統(tǒng)復用。
1權(quán)限管理的功能
權(quán)限管理一般指根據(jù)各個系統(tǒng)設置的一些安全規(guī)則或者安全策略,控制不同用戶可以訪問并且只能訪問自己被授權(quán)的系統(tǒng)資源,不能多也不能少。幾乎在任何系統(tǒng)里面,尤其是在B/S系統(tǒng)里面,都應包含權(quán)限管理模塊。一般來說,我們可以從制度力度來將權(quán)限管理分為功能級權(quán)限管理和數(shù)據(jù)級權(quán)限管理,從控制方向可以將權(quán)限管理分為從系統(tǒng)獲取數(shù)據(jù)和向系統(tǒng)提交數(shù)據(jù)兩個方向。
權(quán)限管理模塊主要用來管理系統(tǒng)的用戶及其操作權(quán)限,通過為不同的用戶組來設置不同的操作權(quán)限,從而達到不同的用戶能保留不同權(quán)限的目的,這樣不僅可以保證系統(tǒng)中數(shù)據(jù)的隱私和系統(tǒng)安全,而且還可以避免數(shù)據(jù)泄密、頁面干擾和操作風險等。
2相關(guān)實體
2.1用戶
用戶指的是系統(tǒng)可供使用的用戶。任何系統(tǒng)的開發(fā)都是為了模擬現(xiàn)實中的情況來實現(xiàn)用戶的需求,一個系統(tǒng)如果沒有用戶也就沒有開發(fā)的必要了,所以用戶是所有系統(tǒng)都應有的實體。
2.2角色
角色是權(quán)限管理模型的核心,它表示的是系統(tǒng)用戶身份的信息。一般來說,系統(tǒng)都有很多的用戶,用戶中有同類的,也有不用類的,如果為每個用戶都來設定權(quán)限,勢必會增加數(shù)據(jù)庫的冗余。為此引入角色實體,可以為同類用戶設置相同的用戶組,再讓不同的角色去設置權(quán)限,這樣不僅可以做到權(quán)限模塊的通用性,也能有效的減少數(shù)據(jù)庫的數(shù)據(jù)冗余。
2.3權(quán)限
權(quán)限指角色可以訪問而且只能訪問的系統(tǒng)資源,包括菜單權(quán)限,操作權(quán)限等。不管是何種權(quán)限資源,在B/S系統(tǒng)中主要指的是各種可供瀏覽器訪問的URL資源。
3實體間的關(guān)系
3.1用戶與角色的關(guān)系
本系統(tǒng)中一個用戶可以隸屬多個角色,而每個角色都包含多個用戶,它們之間是多對多的關(guān)系。為了操作方便,引入一個新的用戶角色關(guān)聯(lián)實體,用戶和角色與關(guān)聯(lián)實體都是一對多的關(guān)系。如圖1所示。
3.2角色與權(quán)限的關(guān)系
本系統(tǒng)中一個操作權(quán)限可以隸屬多個角色,而每個角色都可以包含多個權(quán)限,它們之間也是多對多的關(guān)第。為了操作方便,也引入一個新的角色權(quán)限關(guān)聯(lián)實體,角色與權(quán)限與關(guān)聯(lián)實體都是一對多的關(guān)系。如圖2所示。
4數(shù)據(jù)庫表關(guān)系
根據(jù)上述討論,筆者只給出每個實體的基本屬性,并不針對于特定的系統(tǒng)。下面給出通用權(quán)限模塊的表結(jié)構(gòu)以及它們之間的關(guān)系圖,具體如圖3所示。
從圖3所示,通用權(quán)限模塊一般要包括5個數(shù)據(jù)庫表,其中角色表是整個模塊的核心,它與用戶表和權(quán)限表都有關(guān)系。
為了闡明權(quán)限模塊的通用性,圖3中各個數(shù)據(jù)庫表的屬性都是最基本的屬性。如果要復用本模型來適應不同的系統(tǒng)需求,讀者只要根據(jù)實際情況適當?shù)膩碓黾酉鄳膶傩浴?/p>
5結(jié)語
本文主要對通用權(quán)限管理的設計進行了簡單明了的闡述,其目的是為筆者的科技項目提供設計建模思路。在實際的Web項目開發(fā)肯定比上述討論的要復雜很多,但是再復雜的功能都是在最基本的功能上進行擴展的。一個功能完備的權(quán)限管理模塊是保障各級系統(tǒng)數(shù)據(jù)與服務安全的基礎,并且其它業(yè)務邏輯都可以基于權(quán)限管理模塊來進行設計實現(xiàn)。讀者可在本文討論的基本模型的基礎上,根據(jù)要實現(xiàn)系統(tǒng)的特殊情況,適當?shù)男薷木涂梢詰玫叫碌南到y(tǒng)中去。
參考文獻
[1]吳波,王晶,基于基本RBAC模型的權(quán)限管理框架的設計與實現(xiàn)[J],計算機系統(tǒng)應用,2011(4)50-54
[2]郭軍,基于角色的訪問控制分級授權(quán)管理的研究[D],西安:西安電子科技大學,2012
[3]顧航,夏帆,宋樹彬,肖李敏,董啟文,徐林昊,周傲英.研究生信息平臺中權(quán)限管理的設計與實現(xiàn)[J].華東師范大學學報(自然科技版),2018(3):109-120
[4]顧春華,肖寶亮.RBAC模型層次關(guān)系中的角色權(quán)限[J].華東理工大學學報(自然科學版),2007(1):96-99
[5]賈青梅,楊正球,統(tǒng)一權(quán)限管理模塊的設計與實現(xiàn)[C]∥2009通信理論與技術(shù)新發(fā)展第十四全國青年通信學術(shù)會議論文集[C].中要通信學會青年工作委員會,2009: 233-237
[6]桂艷峰.林作銓.一個基于角色的Web安全訪問控制系統(tǒng)[J],計算機研究與發(fā)展,2003,8:1186-1194