RBAC權限管理系統:從業務流到數據流再到原型展示的那些事


B端產品做了這麼久,最大的感觸就是B端產品有着複雜的業務關係。凡事預則立,那麼在規劃一個模塊的功能之前,我們需要先對這個模塊內部的業務關係進行梳理。在本篇文章,我會以ERP系統最成熟的後臺管理系統來舉例子,從頂層業務開始分析、再到底層數據關係,最後通過原型說明。

1.業務流程

ERP系統,Enterprise Resource Planning,企業資源計劃。顧名思義,首先企業資源有哪些?我們看到的金蝶、用友、SAP等ERP系統,在系統部署時,實施顧問總會先提到一個詞:後臺管理系統。後臺管理系統也是給用戶用的,提到後臺管理系統肯定離不開一個詞叫權限。權限管理主要是避免因權限控制缺失而引起的數據泄露的問題。所以,我們需要解決的問題是:

哪些部門的哪個用戶具有哪些權限?

要解決這個問題,我們不得不提到一個模型:RBAC(基於角色的訪問控制)權限控制模型
因此,我們需要聚焦三個關鍵詞:用戶、角色、權限。

在這裏插入圖片描述
一個後臺管理系統,關於用戶、角色、權限基本上可以抽象出六張表:

  1. 部門表;一個公司可以有多個部門;
  2. 用戶表;一個用戶可從屬於多個部門;
  3. 角色表;一個系統有多個角色,一般簡單分爲系統管理員administrator和普通用戶user;
  4. 用戶-角色表;用戶角色表,即一個用戶可有多個角色,存儲用戶和角色之間的映射關係;
  5. 權限表;權限分爲頁面權限、數據權限、操作權限;
  6. 角色-權限表;每個角色可以擁有哪些頁面權限、數據權限以及操作權限。

涉及到部門其實還會有一個叫用戶組的概念,當用戶很多時,我們給每個用戶單獨去賦予角色,會很麻煩。可以將一個部門下的所有用戶授予一個角色。
在這裏插入圖片描述

2.數據流程

前面一部分,分析了每個步驟的業務以及主要的作用,我們這一步主要是分析底層數據的流向。爲了更加清晰,這一部分直接用Navicat進行E-R建模。

建議每個B端產品經理都學習一下UML建模工具,對工作中的業務分析有很大的幫助。

在這裏插入圖片描述

每個表都很類似,主要是id和name。特殊說明一下,sys_role_user表,uid和rid分別通過建立外鍵,關聯sys_user表和sys_role表。同樣,sys_role_permission角色權限表,也是通過外鍵建立聯繫。

PS:作爲產品經理,只需要瞭解到權限是通過底層六張表來實現,具體數據庫操作可以不關注。但作爲開發人員,必須瞭解每張表如何建以及從產品業務抽象出數據庫模型。

3.功能原型

根據前面的分析,我們先整理出整個後臺權限管理系統的思維導圖:
在這裏插入圖片描述

  1. 組織管理
    組織管理,主要是構建公司的組織架構,B端產品尤其是大的ERP系統等,第一件事就是要解決公司的組織架構問題。涉及到底層,也就是我們前面提到的部門表。(sys_dept)
  2. 人員管理
    組織管理建立好部門的層級關係,就要引入員工信息了。涉及到底層,也就是我們前面提到的人員表。(sys_user)
  3. 權限管理
    權限管理,主要分爲三類:組織管理員授權,角色授權,用戶直接授權。
    (1)對於大的公司,組織管理員授權,即部門領導授權;
    (2)角色授權,即用戶關聯角色,給某一角色統一授權;(sys_role_user);
    (3)用戶直接授權,對於公司規模較小,可對用戶直接進行授權。

權限主要分爲:
功能權限、字段權限、數據規則。也就是我們前面提到的頁面權限、數據權限、操作權限。

  1. 許可管理
    B端系統,使用是有限制的。一般公司會賣license。通俗一些說,有多少個可以登錄系統的許可。
    權限分配和許可分配缺一不可。
    許可分配:用戶憑賬號密碼可以登錄系統;
    權限分配:登陸之後,能使用什麼功能,取決於權限管理給該用戶分配了什麼權限。

登錄頁
在這裏插入圖片描述
首頁
在這裏插入圖片描述

此處原型只展示一個導航,具體原型內容就不一一展示了。

本篇博文簡單分析了一下RBAC權限管理模型在實際業務中如何落地,有想法歡迎討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章