Web開發中的使用者角色許可權設計總結
-
按照角色許可權的最簡單的設計
名稱 描述 使用者 不具備管理功能 管理員 具備管理普通使用者的許可權 超級管理員 具備管理管理員的許可權 上面的設計直接將參與系統的使用者分為三類角色:使用者,管理員,超級管理員。
-
按照角色許可權,粒度劃分再小些設計
名稱 許可權 描述 普通使用者 普通服務 享有系統有限服務 VIP使用者 高階服務 享有VIP服務 上面是使用者的簡單劃分示例,通過將使用者進行許可權劃分,來提供不同的服務。
名稱 許可權 描述 產品管理員 管理產品模組 具備產品模組的管理操作許可權 客戶管理員 管理客戶模組 具備客戶模組的管理操作許可權 上面是管理員的簡單劃分示例,通過將後臺管理員進行許可權劃分,使的每一個管理員角色具備不同的操作許可權,並且不同角色的管理員在管理角色上不存在交叉管理,這樣系統的管理部分才有可能儲存清晰,完整,有效。
名稱 許可權 描述 超級管理員 管理各類管理員 具備最高的管理許可權 系統管理員 管理整個系統,包括管理超級管理員 系統管理員具備操作整個系統的最高許可權 上面是系統級別的管理簡單劃分示例,一個系統建設完成後應該具備自管理的功能,即:系統環境配置,模組管理,使用系統的干係人管理等都可以通過自身的管理模組完成,而不是人為的修改資料或者系統程式。
-
按照模組對角色具備的操作許可權進行劃分,粒度將更細。對於模組層的許可權劃分使得系統許可權管理嚴格,個角色的智慧更加精確,當然系統的設計,實現也相對複雜。
2.使用者-角色-許可權的一個物理模型
設計示例圖如下所示:
-
使用者
-
角色
四種角色(標識列[主鍵],角色編碼,角色名稱)
-
使用者角色
使用者角色標識列,使用者編碼,角色編碼即構成使用者角色中間表。注:實際中一個使用者足矣具備多種角色。
-
模組
[模組標識列,模組編碼,模組名稱,父模組編碼,模組URL]
說明:
父模組編碼:用於模組劃分粒度層次標識
模組URL:用於模組在WBE應用中的訪問標識,當然也可以作為他用。
-
許可權
許可權標識,許可權編碼,許可權名稱。
-
模組許可權
模組許可權標識列,模組編碼,許可權編碼。模組許可權表在模組粒度和許可權粒度上對模組進行的相應的許可權設定,可以簡單表述為:具備在某一模組上的某種許可權操作。因此將角色和模組許可權進行關聯將成為角色具備這一粒度層次上的操作許可權。
-
角色許可權
角色許可權標識列,角色編碼,模組許可權編碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT
t_account.ACCCODE,
t_account.ACCNAME,
t_role.ROLECODE,
t_role.ROLENAME,
t_module_privilege.MODUELCODE,
t_module.MODUELCODE,
t_module.MODUELNAME,
t_privilege.PRICODE,
t_privilege.PRINAME
FROM
t_account,
t_account_role, t_role, t_role_privilege, t_module_privilege, t_module, t_privilege
WHERE
t_account_role.ACCCODE=t_account.ACCCODE AND t_account_role.ROLECODE=t_role.ROLECODE
AND
t_account.ACCCODE= "400900500"
AND
t_role_privilege.ROLECODE=t_role.ROLECODE AND t_role_privilege.MPID=t_module_privilege.MPID
AND
t_module_privilege.MODUELCODE=t_module.MODUELCODE AND t_module_privilege.PRICODE=t_privilege.PRICODE
|