基於角色的權限管理系統設計思路

概述

權限管理功能是項目中重要的部分,通過權限系統可以控制系統中各用戶所擁有的權限,比如能否打開一個頁面,能否進行某項操作,合理的權限控制可以規避誤操作的風險,提高系統的可用性。
權限管理的思路一般爲基於角色和基於資源兩種,基於角色即對爲用戶賦予某些角色的權限,基於資源則爲對用戶賦予某些資源的權限。兩種既可以單獨實現,也可結合起來使用。

設計思路

系統中抽象出操作、角色、用戶三個概念,其中操作由項目中抽象出來,一個操作可以是一個URI,也可以是一個方法,比如創建用戶的操作,刪除用戶的操作。角色是權限管理的核心,一個角色具有某些操作的權限,比如用戶管理員,這個角色具有的權限有添加用戶的權限、修改用戶的權限、刪除用戶的權限。系統中的用戶則被賦予若干個角色,比如如果有一個用戶A被賦予了用戶管理員的角色,那他就能添加、修改、刪除用戶。

表結構設計

使用MySQL和MongoDB都可以,MongoDB可以直接用數組保存用戶所具有的角色
項目表

字段名 說明
id
token 密鑰
name 項目名稱
ctime 創建時間
mtime 修改時間

操作表,uri是唯一索引

字段名 說明
id
project_id 項目id
uri 操作的地址
name 操作名稱
status 狀態
ctime 創建時間
mtime 修改時間

角色表

字段名 說明
id
project_id 項目id
actions 具有權限的操作
status 狀態
ctime 創建時間
mtime 修改時間

用戶表
角色表

字段名 說明
id
project_id 項目
name 用戶名
roles 所屬的角色
status 狀態
ctime 創建時間
mtime 修改時間
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章