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