ERP系统:后台权限设计

12 评论 54883 浏览 355 收藏 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. 大佬,什么较安全权限?具体是管控什么的啊?谢谢

      来自山东 回复