请输入
菜单

数据集行权限使用案例分享

案例一:“一人多店”,用户属性多值匹配

业务场景:针对类似像店铺管家这种,用户数较多且用户层级鲜明的情况:店长-城市主管-城市经理,三种类型的用户都只能查看自己所管辖店铺的业绩情况,且存在一人管多店的情况。

方案:

1. 配置用户属性:在用户属性添加【门店】这一属性,填写用户对应的门店编码;若一人管辖多个门店,则填写多个门店编码,并以分隔符(如逗号)隔开。

2. 行权限配置:在数据集或者数据权限模板里设置行权限,条件模式下,添加条件,选择“in(用户属性)”,点选进行界面化配置(此功能5.5及以后版本可用)。

image.png

3. 5.5以前的版本,可以使用自由模式配置权限条件。

非直连数据集行权限写法:

array_contains(split( [CURRENT_USER.门店] ,','),[门店编码])

image.png

Clickhouse写法:

[门店编码] in splitByChar(',',[CURRENT_USER.门店])

【注意事项】

  1. 用户属性为字符串string格式,数据集字段若非string格式,建议先把字段转换为string格式,再设置行权限;

  2. 建议优先使用条件模式下的“in(用户属性)”用法,条件模式无法满足需求时再使用自由模式。

  3. 其他数据库语法可以参考:各直连数据库行权限设置语法

案例二:用户属性多值+逻辑判断+模糊匹配

业务场景: 用户属性里有大区、城市。总公司员工大区属性里有值,可能有一个或者多个值(例如华东),城市为空,可以查看自己所在大区的所有数据,子公司员工大区为空,城市可能有一个或者多个值(例如上海,杭州),只可以查看自己管辖城市下的数据。总公司和子公司员工同属于一个大的用户组。

      非直连(非加速)数据集,字段有大区、省份、城市,大区可以精确匹配,但是省份、城市是全称,例如上海市、杭州市、内蒙古自治区,跟用户属性不能精确匹配。

行权限写法:

case when [CURRENT_USER.大区]

上一个
各直连数据库行权限设置语法
下一个
视图数据集使用方法及案例分享
最近修改: 1970-01-01Powered by