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

2021-08-01 07:43:35 字數 1029 閱讀 5176

許可權管理功能是專案中重要的部分,通過許可權系統可以控制系統中各使用者所擁有的許可權,比如能否開啟乙個頁面,能否進行某項操作,合理的許可權控制可以規避誤操作的風險,提高系統的可用性。

許可權管理的思路一般為基於角色和基於資源兩種,基於角色即對為使用者賦予某些角色的許可權,基於資源則為對使用者賦予某些資源的許可權。兩種既可以單獨實現,也可結合起來使用。

系統中抽象出操作、角色、使用者三個概念,其中操作由專案中抽象出來,乙個操作可以是乙個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 資源表...