在用ASP,JAVASCRIPT與ORACLE開發一套稅務系統的后臺管理軟件時,我們成功的實現了基于用戶組與用戶的安全策略,并在靈活性,安全性方面達到了較好的效果。我們將分存貯結構,菜單管理,權限分配,安全檢查四個方面將基于用戶的安全策略在B/S中的實現介紹給大家。
1 存貯結構 存貯結構對于本系統來說就是數據庫表的結構主要由以下幾個表:
A.菜單表(CDB)
字段名 字段說明 類型 備注
CDBH 菜單編號 NUMBER(3) 非空主鍵
FCDBH 父菜單 NUMBER(3)
CDMC 菜單名稱 VARCHAR2(40)
QXWS 權限位數 NUMBER(2)
RKLJ 入口路徑 VARCHAR2(50)
XGWJ 相關文件 VARCHAR(200)
SFQY 是否啟用 CHAR(1) DEFAULT 1
B.用戶組表(YHZB)
字段名 字段說明 類型 備注
SSDW 所屬單位 CHAR(4) 非空主鍵
YHZBH 用戶組號 CHAR(4) 非空主鍵
YHZMC 名稱 VARCHAR2(40)
YHZQX 權限 CHAR(100)
YHGS 用戶個數 NUMBER(3) DEFAULT 0
SFQY 是否啟用 CHAR(1) DEFAULT 1
C.用戶表(YHB)
字段名 字段說明 類型 備注
SSDW 所屬單位 CHAR(4) 非空主鍵
YHBH 用戶編號 CHAR(4) 非空主鍵
SSYHZ 用戶組 CHAR(4)
DLM 登陸名 VARCHAR2(25)
DLMM 登陸密碼 VARCHAR2(40)
YHXM 用戶姓名 VARCHAR(20)
YHQX 用戶權限 CHAR(100)
SFQY 是否啟用 CHAR(1) DEFAULT 1
權限的存貯采取的是“位”的方式,根據系統規模,我們估計系統的菜單項不會超過100個,則定義了100位作為權限的存貯。如用戶表中的用戶權限字段,如果用戶在第1位上不具備該權限,則第一位為“0”,反之,如果用戶在第1位上有該權限,則第一位為“1”。
菜單表用來存貯系統中所有的菜單項,通過提供的編輯方法,可以對菜單表中的菜單項進行添加修改刪除,從而為靈活性打下基礎。根據菜單編號與父菜單編號的對應關系,根據遞歸原理,很容易實現多級菜單,頂級菜單的父菜單編號為0。權限位數是菜單表中比較關鍵的一個字段,它表明該菜單在權限上的存貯的位置,例,如果菜單編號為10的菜單項的權限位數為10的話,當某用戶的權限第10位為“1”時就表明該用戶有使用菜單編號為10的菜單項的權力,反之,則沒有。
用戶組表用來存貯系統中所有的用戶組,通過提供的編輯方法,也可以對其進行靈活編輯。關鍵字段為用戶組權限為100位的字符串,存貯該用戶組的權限。
用戶表用來存貯系統中所有的用戶,通過提供的編輯方法,可以對其進編輯操作。關鍵字段為用戶權限為100位的字符串,存貯該用戶的權限。該權限是在建立用戶時從該用戶所屬的用戶組繼承過來的,建立好用戶時也可以單獨對用戶的權限進行修改。
其它字段將在后面的介紹中提到,在此不做詳細說明。
|