ERP系統:后臺權限設計

12 評論 54965 瀏覽 356 收藏 6 分鐘

在做企業級系統如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 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 角色目錄是什么意思,差點看懂?

    來自四川 回復
  2. 試問:多店鋪代運營且自己發貨的場景下,如何設置ERP系統權限?一般這類業務客服與運營分管不同的店鋪(數據)和操作(功能)權限,但會出現某個用戶負責多家店鋪,且每家店鋪的操作(功能)權限不一樣,這樣進行組合的時候似乎并不滿足以上說明?再或者筆者可以再分享復雜的權限設計說明

    來自上海 回復
    1. 這種每家店鋪的功能權限不一樣,要怎么設計?想不出真實的業務場景。更細化的按用戶維度的權限配置?

      來自四川 回復
    2. 權限模塊化,由管理賬號自由配置

      回復
  3. 可能還需要考慮審核流

    來自江蘇 回復
  4. 表示不知道寫的啥

    回復
  5. 寫得太簡單了!

    來自四川 回復
  6. 新人看了表示幫助不是很大 ??

    來自上海 回復
  7. 寫的比較簡單

    來自湖北 回復
  8. 對于ERP系統來說過于簡陋設計思路了吧,一般應用軟件的權限設計都是很復雜的,權限不僅僅局限于高效率的角色組授權。其他如功能權限,數據權限,字段權限,安全權限制等各類類組合設計。權限在一個軟件系統中屬于水印潑地,無處不在,無時不有。

    來自四川 回復
    1. 權限的確無處不在,更高效的角色組、權限組的劃分。搭配創建人權限、安全等級、組織機構分權。上述都是簡易的經驗不如用友To B的通用性考慮全面。多謝大佬指點。

      來自四川 回復
    2. 大佬,什么較安全權限?具體是管控什么的?。恐x謝

      來自山東 回復