ERP系統:后臺權限設計
在做企業級系統如ERP和OA時,基于系統框架先前要做的就是權限管理系統。本文主要講的是按照RBAC來看權限分配。
根據人員職級的不同所使用的系統功能不同,當人員使用相同功能時,根據組織機構的不同,看見的數據不同。按照不同的維度,進行權限的劃分,而不同。
其一基于角色的訪問權限控制(RBAC)模型,人員角色來賦值給用戶的權限管理,可以分為兩大類型:功能權限、數據權限。
那么現在我們就先按照RBAC來看權限分配。
一、背景
在對應系統中每個用戶所看見的界面功能和數據不可能都一樣,而是根據人員的組織機構和職級不同進行相應的區分。
舉個例子:
- 部門經理可見可操作功能‘業務報表’,員工不可見。
- 業務A部門經理在‘業務報表’中只能看見本部門業務A部門的數據。而總經理可在‘業務報表’中,可查看所有部門業務A、B、C、3個部門的數據。
這時就需要進行對應的權限分配。
二、RBAC
經典模型RBAC模型是現在權限管理系統的基礎,但包括不限于此。根據公司組織架構不同設計有所不同,或2B業務是設計的通用權限劃分,RBAC模型可分為:RBAC_0、RBAC_1、RBAC_2、 RBAC_3共4個版本。其他3個模型都是基于RBAC_0演化的。
先簡述下這4個RBAC模型:
- RBAC_0模型: 權限——角色——用戶。
圖一
- RBAC_1模型:基于RBAC_0增加了子角色,子角色可繼承父角色的所有權限。
- RBAC_2模型:基于RBAC_0增加了角色互斥,互斥的角色不可同時賦予一個用戶賬號。
- RBAC_3模型:結合了RBAC_0、RBAC_1、RBAC_2,目前為更全面更復雜的模型。
三 、使用場景
基于RBAC來做的權限賦予角色再賦予用戶。
1. 功能權限
配置每個用戶所見及所能操作的功能項不同。
當在主系統中存在不同子系統時,選定對應子系統將不同的功能項賦予到指定的角色上。
圖二
2. 數據權限
根據組織機構所屬部門不同,用戶使用相同功能時所能看見的展示數據是不一樣的,因根據公司業務情況不同。
- 其一直接套用組織機構進行權限劃分,缺點不可配置,無法根據實際業務跨部門查看數據。
- 其二根據組織機構再次進行配置劃分數據權限,缺點為每個組織機構都進行數據權限分配。
圖三
3. 角色結合
在某個組織機構下選取的崗位角色,賦予對應的功能角色和數據角色。
崗位角色=功能角色+數據角色
圖四
4. 配置賬號
將不同的用戶賬號賦予不同的崗位權限,因我們在角色就是用的多角色構成關系,及崗位角色被賦予了多個功能權限與數據權限。因此,一個用戶賬號在此只需要對應一個崗位角色即可。
圖五
若無任何一權限進入系統后則應有“無權限”提示,對于企業級系統如ERP、OA主體為公司員工使用,而賬號分配及權限分配都是有專人負責進行,并無開放注冊功能。
按照不同的維度進行權限的劃分還可以對接人力資源管理系統,按照組織機構進行權限劃分,也可在當前設置按鈕中加入共享功能再特定人員(如:分部、部門、個人、角色),這時根據系統主體架構而定。
四、最后的話
看到這里相信只要產品同學對RBAC 4 個模型有了認知后,那么做一個簡單的權限系統應該只是水到渠成,做一個簡單的權限系統應該沒問題。
以僅代表個人觀點,不足之處歡迎交流。
本文由 @臭皮匠 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pexels,基于 CC0 協議
角色目錄是什么意思,差點看懂?
試問:多店鋪代運營且自己發貨的場景下,如何設置ERP系統權限?一般這類業務客服與運營分管不同的店鋪(數據)和操作(功能)權限,但會出現某個用戶負責多家店鋪,且每家店鋪的操作(功能)權限不一樣,這樣進行組合的時候似乎并不滿足以上說明?再或者筆者可以再分享復雜的權限設計說明
這種每家店鋪的功能權限不一樣,要怎么設計?想不出真實的業務場景。更細化的按用戶維度的權限配置?
權限模塊化,由管理賬號自由配置
可能還需要考慮審核流
表示不知道寫的啥
寫得太簡單了!
新人看了表示幫助不是很大 ??
寫的比較簡單
對于ERP系統來說過于簡陋設計思路了吧,一般應用軟件的權限設計都是很復雜的,權限不僅僅局限于高效率的角色組授權。其他如功能權限,數據權限,字段權限,安全權限制等各類類組合設計。權限在一個軟件系統中屬于水印潑地,無處不在,無時不有。
權限的確無處不在,更高效的角色組、權限組的劃分。搭配創建人權限、安全等級、組織機構分權。上述都是簡易的經驗不如用友To B的通用性考慮全面。多謝大佬指點。
大佬,什么較安全權限?具體是管控什么的?。恐x謝