一、什么是数据权限?
数据权限是指对系统用户进行数据资源可见性的控制,通俗的解释就是:`符合某条件的用户只能看到该条件下对应的数据资源`。那么最简单的数据权限大概就是:用户只能看到自己的数据。如:
领导需要看到所有下属员工的客户数据,员工只能看自己的客户数据;
角色A能看到全国的产品数据,角色B只能看到上海的产品数据;
二、数据权限控制的背后机理?
三、如何实现数据权限控制?
接下来将通过具体的示例来介绍如何设置行级权限及列级权限。
数据行级权限
当我们希望东北大区的销售人员只能看到“东北”地区的数据,我们可以建立一个“数据行级权限”,然后设置数据访问权限,只允许该角色成员访问“东北”地区的数据,然后将该“数据行级权限”赋予东北大区的销售人员即可。
下面我们将分步骤介绍操作方法
1.创建一个“数据权限”
2.在行权限设置界面,选择需要设置访问权限的数据连接进行设置
3.选择“添加列表筛选”,添加一个筛选条件(地区字段为“东北”)
4.将该“数据行级权限”赋予给东北大区的销售人员,则他们在访问相关报告时,只会看到“东北”地区的数据
当我们的数据筛选条件比较复杂,涉及多个层级的筛选时(比如要筛选“东北”地区跟“浙江”省的数据),这时候可以使用树状筛选来实现。
1.我们可以选择“添加树状筛选”来添加一个筛选条件
2.选择需要设置筛选条件的表,并勾选需要设置筛选条件的字段(这里我们勾选“地区”跟“省/自治区”)
3.选择需要的数据项(这里我们勾选“东北”跟“浙江”),确定后生成筛选条件
4.添加的筛选条件会显示在窗口中,确定后即可生效
根据用户的属性来进行数据行级权限管控
试想这样一种场景,我们的公司在“东北、华北、华东、华南”四个大区都有销售人员,我们希望不同大区的销售访问同一张报告时候只能看到自己所属大区的数据,用“数据行级权限”可以实现这样的需求,我们可以创建4个“数据行级权限”,每个“数据行级权限”只能访问一个大区的数据,然后给不同大区的销售人员分配对应的“数据行级权限”。上述方法,当我们存在多少个大区,我们就需要创建对应数量的“数据行级权限”。那么有没有更简便的方法呢,可以借助有数的用户属性来实现。
1、创建一个“数据行级权限”,选择要设置权限的数据连接,并选择设置方式为“动态值”
2、选择要设置权限的表跟字段,选择要匹配的用户属性
3、保存后,将该“数据行级权限”分配给所有用户,则每个用户访问报告时会根据该用户所在大区来筛选数据,只能看到自己大区的数据
另外,可在平台管理界面对用户属性进行管理,有数暂不提供修改用户属性的入口。有数提供api接口,可以从客户自有的系统(比如OA系统)中读取每个用户的用户属性。
数据列级权限
数据列级权限的设置和行级权限基本一致,列级权限仅支持固定值的设置。
1、在列权限设置界面,选择需要设置访问权限的数据连接和权限字段所在表
2、选择要设置列权限的字段,勾选的字段为没有查看权限的字段
3、设置好以上权限后,保存权限设置,并添加成员,则该成员即受该权限的限制
4、对于没有列权限的数据,用户所查看的报告若包含改字段的数据,则数据均作隐藏处理,如下表所示:
5、针对整个报告,允许在报告设置入口勾选[不区分数据权限],勾选后,该报告下的所有报表、控件均不受数据行级&列级权限影响。
若报告已设置不受数据权限影响,则针对单图表的数据权限设置置灰不可选,hover时也有相应提示。
本文分享自 小草学Python和SQL 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!