許可權管理功能是專案中重要的部分,通過許可權系統可以控制系統中各使用者所擁有的許可權,比如能否開啟乙個頁面,能否進行某項操作,合理的許可權控制可以規避誤操作的風險,提高系統的可用性。
許可權管理的思路一般為基於角色和基於資源兩種,基於角色即對為使用者賦予某些角色的許可權,基於資源則為對使用者賦予某些資源的許可權。兩種既可以單獨實現,也可結合起來使用。
系統中抽象出操作、角色、使用者三個概念,其中操作由專案中抽象出來,乙個操作可以是乙個uri,也可以是乙個方法,比如建立使用者的操作,刪除使用者的操作。角色是許可權管理的核心,乙個角色具有某些操作的許可權,比如使用者管理員,這個角色具有的許可權有新增使用者的許可權、修改使用者的許可權、刪除使用者的許可權。系統中的使用者則被賦予若干個角色,比如如果有乙個使用者a被賦予了使用者管理員的角色,那他就能新增、修改、刪除使用者。
使用mysql和mongodb都可以,mongodb可以直接用陣列儲存使用者所具有的角色
專案表欄位名
說明id
token
金鑰name
專案名稱
ctime
建立時間
mtime
修改時間
操作表,uri是唯一索引
欄位名說明
idproject_id
專案id
uri操作的位址
name
操作名稱
status
狀態ctime
建立時間
mtime
修改時間
角色表欄位名說明
idproject_id
專案id
actions
具有許可權的操作
status
狀態ctime
建立時間
mtime
修改時間
使用者表
角色表欄位名
說明id
project_id
專案name
使用者名稱roles
所屬的角色
status
狀態ctime
建立時間
mtime
修改時間
基於角色的許可權管理系統
許可權模型 rbac簡化了使用者與許可權的關係 圖中有5個角標數字,對應的就是rbac模型重要的5個屬性 rbac關係圖 序號關鍵屬性描述1 使用者張 三 李四 王五2角色 銷售經理 銷售 前台 3使用者角色關係 張三 是 銷售經理 李四 王五 是 銷售4許可權 新增客戶 編輯客戶 刪除客戶,檢視客...
基於角色的許可權管理系統資料庫設計
表名 使用者表 user 主鍵 id 備註 這張表唯一要求就是檢索速度?如果該張表每天有一千萬次的訪問量,該如何設計優化?filedname filedtype mainfileddescription idname otherfiled int自動增長列,主鍵約束 varchar 20 not n...
基於許可權的角色管理
1.基於角色的許可權管理介紹 rbac 得到乙個專案要搞懂兩點 首先看懂需求 表設計出來 業務 無非就是操作的表不一樣,搞清楚往那張表裡寫,從那張表裡讀就可以了 基於角色的許可權管理至少得四張表 使用者表 多戶n 角色1 角色表 為了分配資源簡單化,因此給使用者配角色即可以了 角色n 資源n 資源表...