馮益斌
[摘要]在基于Web訪問的管理信息系統(tǒng)中,系統(tǒng)的安全性問題至關(guān)重要。而采用基于角色訪問控制(RBAC)模型可以有效地解決系統(tǒng)安全性問題。結(jié)合“化學(xué)藥品管理”系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),詳細(xì)論述角色訪問具體的安全機(jī)制,通過限制系統(tǒng)中各種角色對(duì)系統(tǒng)的操作,有效地解決了Web頁面安全訪問和控制數(shù)據(jù)庫的問題。
[關(guān)鍵詞]RBAC 安全 權(quán)限
中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0510049-01
一、引言
基于角色的訪問控制RBAC(Role-Based Access Control)的概念是從20世紀(jì)70年代對(duì)在線的多用戶、多應(yīng)用系統(tǒng)的研究開始的。因?yàn)榛诮巧L問控制策略是一項(xiàng)成功的技術(shù),在許多Web應(yīng)用程序中,正需要用它來有效地增強(qiáng)對(duì)用戶訪問的控制和管理。
目前筆者單位對(duì)實(shí)驗(yàn)室化學(xué)藥品管理還出于手工階段,很大程度上造成了信息的不一致性,而且對(duì)數(shù)據(jù)的安全性也不能很好地保障。文中設(shè)計(jì)的“化學(xué)藥品管理”系統(tǒng)正是為了彌補(bǔ)這種不足,但同時(shí)為了保證系統(tǒng)的安全性,加強(qiáng)身份認(rèn)證和訪問控制,采用基于角色的訪問控制策略給出了一個(gè)相應(yīng)的解決方案,詳細(xì)論述了角色訪問(RBAC)具體的安全機(jī)制,通過限制系統(tǒng)中各種角色對(duì)系統(tǒng)的操作,有效解決了WEB頁面安全訪問和控制數(shù)據(jù)庫的問題。
二、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
(一)系統(tǒng)的設(shè)計(jì)
在現(xiàn)有的應(yīng)用信息系統(tǒng)中主要存在以下問題:
面對(duì)大型數(shù)據(jù)庫系統(tǒng),如SQL Server,應(yīng)用系統(tǒng)的用戶并非專業(yè)的數(shù)據(jù)庫管理人員。由于大型數(shù)據(jù)庫安全管理的復(fù)雜和專業(yè)化,使得普通用戶在使用過程中很容易發(fā)生誤操作。
現(xiàn)有的一些數(shù)據(jù)庫應(yīng)用系統(tǒng)中雖然實(shí)現(xiàn)了數(shù)據(jù)庫安全訪問控制,但設(shè)計(jì)缺乏靈活性,在實(shí)際應(yīng)用中,隨時(shí)間和情況的變化,程序的適應(yīng)能力差。為了解決上述問題,設(shè)計(jì)目標(biāo)力求在保證后臺(tái)數(shù)據(jù)庫安全的前提下,提高軟件的可用性,以及操作界面的友好性。
(二)系統(tǒng)的實(shí)現(xiàn)
該方法采用流行ASP.NET 2.0+SQL2000完成,系統(tǒng)運(yùn)行于IIS上。這種B/S(Browser/Server)結(jié)構(gòu)方便于網(wǎng)絡(luò)瀏覽,適合用戶同時(shí)使用該系統(tǒng)。
與RBAC相關(guān)的表結(jié)構(gòu)如下:
其中,sys樹型目錄、sys權(quán)限表是相對(duì)固定的表格,在設(shè)計(jì)之初就能確定下來。sys用戶表、sys角色表、sys角色權(quán)限表是在實(shí)際使用過程中會(huì)動(dòng)態(tài)修改的表。以下是權(quán)限控制的幾個(gè)關(guān)鍵操作:
用戶登錄:先判斷用戶名和密碼是否匹配,再讀取該用戶的角色名稱,存儲(chǔ)到Session中。
獲取權(quán)限列表:根據(jù)存儲(chǔ)到Session中的用戶的角色名稱,從sys角色權(quán)限表中獲取該角色擁有的權(quán)限列表,并存儲(chǔ)到Session中。
顯示樹型菜單:從數(shù)據(jù)表sys樹型目錄中讀取所有數(shù)據(jù),并加載到Tre
eView控件中,加載時(shí),先獲取該節(jié)點(diǎn)的權(quán)限,然后根據(jù)存儲(chǔ)在Session中的權(quán)限列表,查看該權(quán)限是否在權(quán)限列表中,如果存在,表示該角色有此權(quán)限,加載該節(jié)點(diǎn);否則,跳過該節(jié)點(diǎn)。
權(quán)限檢測(cè):對(duì)于每個(gè)頁面,先根據(jù)頁面的名稱從sys樹型目錄中查找到相應(yīng)記錄,并獲取訪問該頁面所需的權(quán)限。然后根據(jù)存儲(chǔ)在Session中的權(quán)限列表,查看該權(quán)限是否在權(quán)限列表中,如果存在,表示該角色有此權(quán)限,顯示頁面;否則,重定向到登錄頁面。
添加新角色:向sys角色表中新增一條記錄。
為角色設(shè)置權(quán)限:對(duì)sys角色權(quán)限表進(jìn)行相應(yīng)的新增和刪除操作,以權(quán)限的賦予與取消。
添加新用戶:向sys用戶表中新增一條記錄,同時(shí)選擇相應(yīng)的角色。
系統(tǒng)管理人員便可以通過應(yīng)用程序的界面跟蹤監(jiān)視后臺(tái)數(shù)據(jù)庫中數(shù)據(jù)對(duì)象的使用情況,及時(shí)發(fā)現(xiàn)問題,確保數(shù)據(jù)庫安全。
三、結(jié)束語
文中主要論述了在基于Web的“化學(xué)藥品管理”系統(tǒng)中利用不同用戶角色的授權(quán)管理和自主訪問控制(DAC),從而達(dá)到強(qiáng)制訪問控制(MAC)的方法,防止信息流從高密級(jí)流向低密級(jí)和實(shí)現(xiàn)多級(jí)安全訪問控制。文中論述的數(shù)據(jù)庫角色訪問控制方法為多角色軟件開發(fā)提供了一種解決數(shù)據(jù)庫安全訪問控制問題的新方法。增加RBAC模型里職責(zé)分離等約束條件,從而以完整的基于角色的訪問控制機(jī)制實(shí)現(xiàn)用戶自定義的訪問控制策略是下一步研究的工作。
參考文獻(xiàn):
[1]Sandhu R S,Coyne E J,Feinstein H L,et al.RoleBased Access Control Model[J].IEEE Computer,1995,5(3):127-130.
[2]Sandhu R S,Bhamidipati V,Munawer Q. The ARBAC97 Model forRole-Based Administration of Roles [J].ACM Transactions on Information and System Security,1999,2(1):31-36.