同等权限下多任职之间数据权限的实例
编辑导语:同等权限下多任职之间的数据权限应该如何解决呢?本文作者提出了两种解决方法,并且介绍了权限系统、权限分类和角色管理,希望看后能够对你有所启发。
有两种解决方案:
第一种实现难度低,不用跟组织架构挂钩,相对简单,但是只适用于小公司团队;第二种与组织架构相关,相对复杂。
- 第一种:将数据权限与功能权限区分开并与角色关联,数据权限可以将不同模块的数据拆分成不同层级颗粒大小的数据集,与功能权限一样,进行勾选选择即可;
- 第二种:是通过组织架构的部门界定部门从属关系,通过岗位界定人员从属关系【关系到数据范围】,比如员工在A、B两个公司任职不同的岗位和角色,通过角色将组织信息带出,然后选择数据范围和功能权限,切换组织可以解决不同组织同角色,同权限不同数据范围的问题;
一、权限系统
当使用RBAC(Role Based Access Control)模型进行权限管理,相关概念包括权限,角色和用户。
角色与权限绑定,即用户的权限与其被赋予的角色相关。一个用户可以拥有多个角色,一个角色也可以被添加给多个用户,每个角色可以被赋予多个权限。
以下图所示的结构为例:用户1只拥有角色1的权限,即对资源1进行操作1;而由于用户3拥有3个角色全部的权限,因此该用户可以对资源1和资源2分别进行操作1和操作2。
角色与权限绑定唯一例外是当用户为某资源的创建者时,其对此资源的权限与该用户绑定,与角色无关。
例如:用户1拥有角色1,权限为可对资源1进行操作1与2,若该用户创建了资源2则拥有了对该资源的权限,而角色1并没有权限对资源2进行操作。
除非在权限管理中进行修改, 用户最终的权限为其所有拥有角色权限与资源创建者权限的并集。
二、权限分类
权限可分为资源权限、操作权限和数据权限三类,可通过角色管理实现对资源权限和操作权限的分配与管理,数据权限则由数据行级权限管理实现。
- 资源权限:资源包括菜单级别的权限,如订单列表、收付款单表、库存管理表等;
- 操作权限:操作权限包括对订单数据的新增、编辑、查看、删除等,对统计报表的新增、编辑、复制、查看、导出;
- 数据权限:数据权限即行级权限控制,在同一个菜单列表中,数据权限不同的用户能够看到的数据也不一样,例如:小明只能看到小明自己的订单数据,东北地区的用户只能看到东北数据。
三、角色管理
例如可以将角色分成三类:
1. 系统角色
系统角色由系统给出,只存放于根目录。
系统角色包括:系统管理员、二级管理员、业务员、跟单员、经理、美妆等,各角色的权限如下表所示的进行设置。
2. 系统管理员将用户赋予二级管理员
1)方法一
在用户管理页面,添加用户、编辑用户的操作中,赋予二级管理员,此时也可将一级角色美妆同时赋予。
2)方法二
在二级管理员界面,直接添加用户。
二级管理员的项目中心中可创建角色,添加用户和赋予操作权限。
3. 数据权限管理
支持对角色设置数据访问权限,权限控制粒度可达到行和列级别。接下来将通过具体的示例来介绍如何设置行级权限及列级权限。
3.1 数据行级权限
当我们希望业务经理只能看到“销售退款”地区的数据,我们可以建立一个“数据行级权限”,然后设置数据访问权限,只允许该角色成员访问“销售退款”付款项目的数据,然后将该“数据行级权限”赋予该业务经理即可。
下面我们将分步骤介绍设计与操作方法,将付款单表的数据添加行数据展示权限:
1)创建一个“数据权限”;
2)在行权限设置界面,选择需要设置访问权限的数据连接进行设置;
3)选择“添加列表筛选”,添加一个筛选条件(付款项目字段为“销售退款”);
4)将该“数据行级权限”赋予特定的业务人员,则他们在访问相关数据表时,只会看到“销售退款”付款单的数据。
当我们的数据筛选条件比较复杂,涉及多个层级的筛选时(比如要筛选“销售退款”付款项目跟“江苏易棉电子商务有限公司”单位的数据),这时候可以使用树状筛选来实现。
3.2 树状筛选
1)我们可以选择“添加树状筛选”来添加一个筛选条件
2)选择需要设置筛选条件的表(sheet1付款单表),并勾选需要设置筛选条件的字段(这里我们勾选“付款项目”跟“收款单位”);
3)选择需要的数据项(这里我们勾选“销售退款”跟“江苏易棉电子有限公司”),确定后生成筛选条件;
4)添加相关的成员(业务人员),即该成员有此数据权限,只能查看该付款单表的相关数据
通过对所有相关数据表的行数据进行权限分配设定,权限控制粒度可达到行和列级别,能满足大部分情况下的权限控制,可以精确到某一类角色,某一特定用户等。
本文由@山人小道 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自Unsplash,基于CC0协议
请问作者,文中哪部分内容描述指的是数据列的权限设置,我有点懵了/(ㄒoㄒ)/~~
作者可以分享一下原型的链接吗
如果能举例说说前面的两种解决方案就更好了