一、引言
高校科技管理信息系統的建立提高了高校科技管理的效率和水平、促進高校科技發展,但是隨著規模的擴大,它的功能也越來越復雜,涉及的信息種類越來越多,相關人員的類別越來越多,所以,對它進行嚴格的訪問控制是很有必要的。高校科技管理信息系統是由一組與功能相關的服務器端腳本文件和系統文件組成,我們可以將文件看作和權限相關聯的資源實體,通過控制角色對文件的訪問來實現Web信息系統資源的訪問控制。
二、基于角色的訪問控制(RBAC)
角色訪問控制(RBAC,role-based access control)是由David Fenaido和Richard Kuhn提出的,它可以看作是多極模型和多邊訪問模型的綜合。在這個框架中,訪問決策不是用戶名而是由用戶在組織中正在運行的函數決定的;事務也許只能被一個指定賦予某項角色的人執行。RBAC的基本模型及概念結構對應關系包括了四類是題:用戶(User)、角色(Role)、權限(Permls-sinnl會話(Session)。

所謂角色,就是一個或一群用戶在組織內可執行的操作的集合。用戶在一定的部門中具有一定的角色,其所執行的操作與其所扮演的角色的職能相匹配,這正是基于角色的訪問控制的根本特征,即依據RBAC策略,系統定義了各種角色,每種角色可以完成一定的職能,不同的用戶根據其職能和責任被賦予相應的角色,一旦某個用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。
以高校科技管理信息系統為例,系統管理員擁有全部權限,可以進入任何模塊,而每個用戶則只能修改、刪除、增加本人的信息,不能修改、刪除、增加其他用戶的信息。
三、權限的數據庫結構設計
在數據庫系統中,是用基本表的形式表示各個實體,表是中最基本的對象,通過它來儲存所有的數據,以簡單的行(記錄)和列(字段)方式來保存信息。各個實體之間的關系即用戶一項目關系表、用戶一項目一費用關系表、權限一角色關系表和用戶一限制權限關系表。對這些表通過一定的SQL查詢可以實現上面所論述的集合運算。同時在基本表和關系表之間,利用數據庫的接連刪除和修改功能,保證數據庫的正確性和一致性,比如刪除一個用戶,其在各關系表中接連的記錄也將被刪除。要維護的主要的數據信息表有角色信息表、功能權限信息表和角色權限信息表。
角色信息表:帳號權限的分配設置是通過給賬號設置角色來實現,所以需要建立角色信息,如表

功能權限信息表:要對帳號設置分配操作本系統的功能權限,就必須要先建立本網站的所有功能權限信息,如表

角色權限信息表:把相應的功能權限分配設置給對應的角色,建立角色權限信息表,如表

四、角色訪問控制的內容及代碼實現
1、在這里包括兩部分內容,一個是權限管理部分,一個是權限驗證部分 (1)權限管理部分用于維護信息系統中與訪問控制相關的信息,包括數據實體(用戶、用戶組、權限組(角色)、權限和系統頁面組)信息的添加、修改和刪除,和數據實體間關聯信息的添加與刪除。在維護訪問控制信息的時候,需要遵循RBAC訪問控制模型的角色約束規則。此模型實例因降低模型復雜度,簡化了角色層次結構。
(2)權限驗證部分根據系統信息對用戶訪問進行驗證,通過用戶名和所訪問的頁面信息對資源訪問進行驗證。
一般情況下,系統設置系統管理員,擁有所有權限,然后系統管理員根據用戶角色設置用戶權限。用戶進入頁面首先進行身份驗證,通過驗證后才能進入其角色規定的頁面進行操作。
2、代碼實現把功能權限分配給對應角色,對應該角色的用戶帳號就具有了該權限,其實現的主要代碼如下:
<%
IsPostBack=trim(Request(“IsPostBack”)+””)
Selectrole=trim(Request.QueryString(“select”)=””)
role_id=trim(Request(“RoleName”)+””)
if IsPostBack=“PostBack” and selectRole<>“on”then
checked=true
if len(role_id)<1 then
checked=faIse
msgerr=“請選擇需要設置的角色!”
end if
if checked then
num=1
strsql=“delete from xt_t_role_func where role_id=”+role id
con.execute(strsql)
for each funct in request.form(“checkfunctroIe”)
if trim(funct)<>””then
strsql=“insert into xt_t_role_func(rofe_id,fun_id)”
strsql=strsql+“values(“+role_id+”,”+trim(funct)+”)”
con.execute(strsql)
end if
num=num+l
next
msgerr=“成功設置角色功能權限!”
end if
end if
%>
權限分配與修改頁面如下圖

五、結束語
RBAC訪問控制模型實現了用戶與訪問權限的邏輯分離,減少了授權管理的復雜性,降低了管理開銷,而且與日常信息系統管理的架構類似,降低了管理復雜度。但在實際的信息系統的設計與開發中,仍需要根據實際需求采用最適當的權限管理模型,以達到系統復雜度和效率的平衡。