摘 要 基于角色的訪問控制方法可以實現(xiàn)對用戶、角色和權(quán)限的良好管理,文章以權(quán)限控制模型為例展現(xiàn)了RBAC的靈活應用,體現(xiàn)了RBAC在權(quán)限管理方面的優(yōu)越性。
關(guān)鍵詞 基于角色的訪問控制 權(quán)限 角色
Abstract Role-Based Access Control can achieve good management of users, roles and permissions. This paper shows the flexible application of RBAC taking permissions control model for example, and reflects the superiority of RBAC rights management.
Key words Role-Based Access Control;permissions;role
信息系統(tǒng)中的訪問控制技術(shù)通過授權(quán)用戶訪問數(shù)據(jù)的權(quán)限,保證了數(shù)據(jù)的完整性、機密性和可用性。基于角色的訪問控制(Role-Based Access Control,RBAC)是目前應用非常廣泛的資源訪問控制方法,它可以實現(xiàn)對用戶、角色和權(quán)限的良好管理[1]。
一、RBAC相關(guān)理論
RBAC的基本思想是:根據(jù)對系統(tǒng)的操作職能劃分若干個角色,將權(quán)限授予角色,再將角色分配給用戶主體,使主體得到客體的操作權(quán)限從而實現(xiàn)授權(quán)。RBAC模型將用戶和用戶所擁有的權(quán)限分離開來,使得管理員可以靈活的管理用戶、角色和權(quán)限,從而減少了授權(quán)管理的復雜性,降低了管理開銷[2]。
二、基于RBAC的權(quán)限控制模型的設計
根據(jù)RBAC的基本思想,以下以權(quán)限控制模型為例實現(xiàn)RBAC的應用。
(一)權(quán)限控制模型的物理模型設計
權(quán)限控制模型涉及到系統(tǒng)模塊表、用戶表、角色表,以及用戶—角色關(guān)系、角色—權(quán)限關(guān)系,利用Power Designer建模工具進行數(shù)據(jù)庫物理建模,體現(xiàn)出各個表之間的聯(lián)系[3]。如圖1所示。
圖1 權(quán)限控制模型的PDM圖
(二) 權(quán)限控制模型的實現(xiàn)
1.權(quán)限控制模型的技術(shù)架構(gòu)
權(quán)限控制模型采用.NET 與C#開發(fā)技術(shù),以軟件三層架構(gòu)為開發(fā)模式來實現(xiàn)對用戶訪問權(quán)限的控制。
2.權(quán)限檢驗函數(shù)設計
為了統(tǒng)一用戶的權(quán)限控制,采用面向?qū)ο缶幊痰乃枷?,在公共模塊下建立pageBase通用類,該類中定義了權(quán)限檢驗函數(shù)CheckRightAuth,用來判斷用戶所具有的權(quán)限。
該函數(shù)的定義如下:
private int CheckRightAuth(string ModuleId,string UserId)
{
int Right = 0;
string[] strLogin = new string[]{ModuleId, UserId };
//定義業(yè)務邏輯層下的對象
Qx.Bll.SysRole sysrole = new SysRole();
//查詢用戶對模塊的訪問權(quán)限
Right = sysrole.GetUserModuleRight(strLogin);
return Right;
}
執(zhí)行用戶權(quán)限查詢的SQL語句定義如下:
SELECT TOP 1 sysModuleRole.RightFlag FROM sysModuleRole, sysUserRole WHERE ModuleId = @ModuleId AND UserId = @UserId AND sysModuleRole.RoleId = sysUserRole .RoleId ORDER BY RightFlag DESC
根據(jù)查詢出來的權(quán)限字段的值判斷用戶對模塊的操作權(quán)限,-1表示無權(quán)操作,0表示瀏覽權(quán)限,1表示查詢權(quán)限,2表示添加權(quán)限,3表示編輯權(quán)限,4表示刪除權(quán)限,數(shù)值越大表示操作權(quán)限越高,高權(quán)限涵蓋了低權(quán)限。
3.表現(xiàn)層設計
表現(xiàn)層的頁面均繼承于pageBase,通過調(diào)用父類的方法CheckRightAuth來檢驗用戶對模塊的訪問權(quán)限,如果用戶沒有此操作權(quán)限,則會顯示“你沒有權(quán)限操作此功能”的提示。
三、結(jié)束語
本文以.NET為平臺設計了基于RBAC的權(quán)限控制模型,實現(xiàn)了用戶與訪問權(quán)限的邏輯分離,降低了管理員的管理復雜度。但該設計模型的局限性表現(xiàn)在僅實現(xiàn)了 RBAC96基本模型的RBAC0模型,如需實現(xiàn)更復雜、功能更強的權(quán)限管理,則需要對RBAC0做進一步的擴展,這是本文后續(xù)的研究工作。
參考文獻:
[1]王亮亮.RBAC技術(shù)在管理系統(tǒng)中的研究與應用[D].武漢:武漢理工大學,2008:18.
[2]楊凱.RBAC模型在Web環(huán)境下的研究與應用[D].太原:中北大學,2008:8.
[3]賈愛華,陳定方.NET平臺下基于RBAC模型的用戶權(quán)限控制[J].湖北工業(yè)大學學報,2008,23(3):29-30.