数据权限模板使用方法

观小远发表于:2020年08月27日 14:25:21更新于:2020年08月27日 15:33:00

需求背景
多个数据集需要按照同样规则设定行列权限,不想对每个数据集都重复设置一遍行列权限,希望可以批量设置。

适用前提
1. 用来设置行列权限规则的字段存在于每个数据集,且字段名相同。如果不相同,请修改一致。
2. 用户组分组完成,需要和数据集匹配的用户属性设置完成,保持和数据集相关字段内容一致或者有映射关系。
3. 熟悉 Spark SQL 函数用法。如果是直连数据集,需要熟悉对应数据库函数用法。

使用方法
1. 按照以上前提准备数据集,设置用户属性;
2. 打开数据中心,点击“数据权限模板”,点击右上角“新增权限模板”;

0015f47551f0e4ff019808006f6bfe8

3. 根据需要打开“列权限”或者“行权限”开关,再点击“新增”按钮,打开行权限编辑器;

0015f47555a9efe3510f19057c55b584. 搜索用户名或者用户组,选中后点击“关联”按钮;点击右侧“自由模式”下“编辑公式”,从函数列表里选择函数或者手动输入要使用的函数,点选用户属性,该属性名会自动出现在右侧编辑框;数据集字段名需提前复制好粘贴进来或者手动输入,字段名要放在半角方括号[ ]中间;编辑公式并点击“确定”保存。

0015f47558130558fe17ebd9a3127e4

5. 不同用户组权限不同,可以根据需求新增多个规则;最下方开关用来控制该权限模板是否对数据集所有者和管理员生效。

0015f47566424871797725deedd44d16. 进入“应用数据集”标签页,点击“添加数据集”,勾选数据集确定保存即可。或者在数据集“数据权限”标签页点击“调用模板”。后续如果需要调整单个数据集权限规则,可以在数据集“数据权限”标签页点击“自定义编辑”进行编辑,不再跟模板同步。

0015f47568a4f6a44b975509a02901d

0015f47568a92f62aac5a4d7a89a9a5


行权限公式写法技巧

1. 使用 and/or 注意交集和并集范围;

2. 逻辑判断可以使用 if 或者 case when, 注意 COALESCE() / is null / is not null 只能用来判断null值,不能用来判断空字符串。例如,用户属性”所属门店“为空,需要用 case when [CURRENT_USER.所属门店] ='' 来判断;

3. 所有标点符号都必须是英文半角符号。

案例参

子公司用户:用户属性里同时填写了“所属子公司”和“所属商户”,只能查看自己所属子公司的数据,“所属子公司”里可能设有多个值;

总公司用户:只填写了“所属商户”,可以查看所属商户所有信息,“所属商户”里可能设有多个值。权限规则如下:

0015f4757143295ff717074637a3b6e

    您需要登录后才可以回复