通过DataEase行列权限设置实现数据权限管控

发布于 2022年11月15日

在企业的日常经营中,企业人数达到一定数量之后,就需要对企业的层级和部门进行细分,建立企业的树形组织架构。围绕着树形组织架构,企业能够将权限落实到个人,避免企业内部出现管理混乱等情况。而在涉及到数据分析等工作时,权限分配的重要性进一步凸显,最直接的考量就是数据安全的问题。如何保证不同层级之间的员工仅接触到自己应该看到的数据,是数据分析工具需要考虑的问题。

DataEase作为一款主打“人人可用”的开源数据可视化分析工具,易用性是它最大的优点,因此受到了广大开源社区用户的喜爱。那么,当面对企业实际的应用场景,涉及到复杂的数据权限管控的需求时,DataEase开源数据可视化分析工具的表现如何呢?

本文主要分享如何通过使用DataEase的行列权限功能,结合企业的树形组织架构,最终实现数据权限管控的效果。

背景介绍

首先来看一下企业内部常规的数据结构示例。

一、销售部门组织架构

二、销售部门人员具体信息(手机号码为虚拟生成号码)

三、销售数据

基于这些数据,最终想要实现的效果如下:

1. 小张、小明、小华、小李只能看到各自的销售数据;

2. 王总、李总可以分别看到销售一部、销售二部的销售数据;

3. 张总可以看到整个销售部的销售数据。

4. 销售小组组员看不到手机号码相关信息,张总、王总、李总可以看到。

功能介绍

DataEase开源数据可视化分析工具支持数据权限的相关功能。数据权限功能主要分为两部分,分别是行权限和列权限。

一、行权限

如下图所示,添加行权限时,行权限规则中有四种类型:即组织、角色、用户和系统变量。

在选择组织、角色、用户这三种行权限规则时,对目标字段可以选择特定的组织/角色/用户作为过滤条件,从而进行数据过滤,相当于在编写SQL语句的时候在添加一个“where”的条件。

选择系统变量的行权限规则与前三种不同,系统变量规则页面如下图所示:

其中的用户ID、用户名、邮箱、用户来源、组织是登录用户的基本信息,可以在“用户管理“界面中查看。当选择系统变量类型的规则时,可以通过提取具体登录系统用户的信息作为过滤条件,以达到数据过滤的目的。相对于其他的几种配置方式,这种模式更加方便,不需要逐个选择用户/组织/角色去配置权限。

二、列权限

列权限的配置和行权限在原理上大同小异,也可以从组织、角色、用户三个角度进行配置,配置页面如下图所示:

列权限有两种表现形式:

1. 禁用:对目标字段进行禁用的操作,无权限的用户无法看到目标字段的列数据;

2. 脱敏:对目标字段进行脱敏的操作,无权限的用户看到目标字段的列数据会打上*号。

实际操作

下面我们先对示例数据进行处理。

首先需要梳理出“领导及下属员工的关系表”,如下表所示。这时候需要注意,为了方便之后的数据处理和关联,“领导”字段的名字是无下属的员工时,“下属员工”字段则填写员工本人名字。

下一步,需要我们在“用户管理”界面中建好所需要的用户。DataEase支持“批量导入”功能,能够有效提升用户创建的效率。由于示例中“张总”的权限是最高的,所以我们使用“张总”的账号将销售数据及处理后的用户数据导入系统。

然后,针对导入的数据,需要创建关联数据集将员工和领导的关系与相关数据对应。我们将“领导及下属员工的关系表”中的“下属员工”字段与“销售数据表”中的“人员名称”字段关联到一起,形成一张新的数据表。

一、添加行权限

在形成的新数据表中添加一条行权限,类型为系统变量,设置字段“领导”=“用户名”。

点击“数据预览”选项卡查看数据,发现数据已经发生了变化,用户“张总”可以看到销售部所有的数据。

再将该数据集授权给“王总”和“小华”。通过切换登录用户来查看各自的数据权限,可以看到对应用户的数据权限也已经正常过滤。

二、添加列权限

接下来,我们登录“张总”的账号,创建一条列权限,针对“普通员工”角色,禁用“下属员工手机号码“这一列,如下所示:

登录角色为“普通员工”的“小华”账号,查看最终效果。可以看到,“小华”已经没有“下属员工手机号码”这一列的查看权限了。

列权限除禁用外,还有脱敏功能。我们切换登录至“张总”的账号,将刚刚配置的禁用改为脱敏,如下所示:

登录角色为“普通员工”的“小华”账号,查看最终效果。可以看到,“小华”的“下属员工手机号码”这一列已经被打上了*号。

总结

通过以上步骤,我们成功使用DataEase的行列权限功能完成了对企业数据权限的管控。可以看到,整个整体的配置过程还是比较简单的。尤其是内置变量引入后,大大地减轻了我们在一些场景下的配置工作量。同时,行列权限功能均支持从多个角度进行权限管控,满足了日常生产使用过程中的多样化数据场景。希望DataEase在后续的版本中,能够支持更加丰富的脱敏规则。