数据模型的行权限通过参数进行控制,可以通过如下两种方式来实现:
实现方式 | 实现方法 | 适用场景 |
---|---|---|
通过SQL查询设置数据权限 | 在SQL查询的where条件中设置数据权限表达式。 实现方法请参见:SQL/原生SQL数据集数据权限。 | 数据模型中含有SQL查询。 |
通过数据模型参数设置数据权限 | 详情请参见:数据模型参数设置数据权限。 |
|
若数据模型中含有库表,且库表已经设置了数据行权限,则数据模型会继承该数据权限。
数据模型参数设置数据权限
数据模型中通过在参数定义中应用“用户属性”和“函数”来实现数据权限设置:将当前用户的属性与参数进行关联后,达到控制用户数据权限的目的。
数据权限控制实现主要有两个要点:
- 私有查询必须含有参数。
- 私有查询的参数必须在数据模型参数面板中定义好与“用户属性”或“函数”的关联。
下面,我们通过示例来演示效果:当前登录用户只允许查看其所属区域的数据。
参数引用用户属性
引用用户属性在数据模型中实现数据权限控制的具体操作如下:
1、在“公共设置”界面定义好如下用户属性:
2、在数据模型中定义好带“ShipRegion”参数的即席查询。
3、设置好数据模型的维度和度量:
4、在数据模型的参数面板中定义参数引用“用户属性”:
5、保存数据模型。
6、基于该数据模型创建自助仪表盘后,用属于“华南”区域的用户“ddd”登录查看效果:
参数引用函数
引用函数在数据模型中实现数据权限控制的具体操作如下:
1、数据模型中定义好带“ShipRegion”参数的即席查询。
2、设置好数据模型的维度和度量:
3、在数据模型的参数面板中定义参数引用“函数”:
4、保存数据模型。
5、基于该数据模型创建自助仪表盘后,用属于“华南”区域的用户“ddd”登录查看效果: