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权限管理模型在实际业务中如何落地,有想法欢迎讨论。

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