页面树结构
转至元数据结尾
转至元数据起始

1 概述

数据模型支持数据权限设置,用户可以针对不同的数据模型设置个性化的数据权限。

数据模型无论是直连或抽取模式都支持数据权限设置。

前提条件

1、必须对新建或变更的数据模型已执行了 保存 操作才能设置行权限。

2、直连模式下,如果在数据原表上设置了行权限,数据模型会继承源表设置的行权限;如果是 抽取模式,则不会继承源表设置的行权限,需要重新在数据模型上设置行权限。

3、数据模型行权限 的入口在资源树上的右键菜单“设置数据权限”。

4、迁移数据模型资源时,在导出资源界面勾选了”导出数据源或数据模型包含数据行权限“支持把行权限一并导出。

5、数据模型行权限,暂不支持批量设置。

6、设置数据行权限也可参考源表的,详情可参考:数据权限


2 设置行权限

示例 :管理员可以查看所有区域数据,区域人员只能查看本区域数据。

具体操作步骤如下:

1、先去运维设置/用户管理创建角色和用户: 华南、demo_test(该账号为只能查看华南的数据)。

2、创建数据模型并加入产品自带数据库northwind下的”产品表“、”产品类别表等“,创建数据模型”订单模型“。

3、保存数据模型,然后去设置数据行权限,如下图:

  • 选择”订单表“并且设置他的行权限;
  • 适用于:选择 华南,并且在简单设置中 设置“发货区域”的字段值为“华南”;

选项内容
入口在资源树找到对应的资源,右键菜单/ 设置数据权限。
设置
  • 仅针对模型里面的表或查询进行设置。
  • 行权限支持 简单设置、高级设置。
适用范围
  • 适用于:表示属于“适用对象”内的用户才执行当前数据权限。

  • 不适用于:表示不属于“适用对象”内的用户才执行当前数据权限。

适用对象
  • 数据权限生效对象主要有:用户组、角色、用户;这三类选项取并集; 详情可查看:用户管理
简单设置”

1、简单设置是通过对字段进行条件设置来实现数据权限的方法;这种方法设置的条件是固定的。

2、选择 简单设置:先在可选列中设置条件,然后点击 设置条件关系 按钮。

3、条件间关系说明如下:

  • and关系:表示设置的多个条件同时满足,取交集。

  • or关系:表示设置的多个条件只要满足一个条件就行,取并集。

高级设置

1、高级设置是通过SQL表达式条件设置来实现数据权限的方法,这种方法可以实现设置动态条件。

2、选择 高级设置:从“可选资源区”中选择需要的字段,并拖拽资源到表达式设置区。

3、表达式设置区:通过SQL语句来实现条件设置,支持系统自带的系统函数用户属性动态获取用户所属属性。

  • 一般当登录产品的用户自带机构信息时,比如其所属组就可以获取机构信息,我们使用 系统函数 和数据集SQL关联即可。

  • 若无法直接根据当前用户的信息获取到机构信息,则需要用户和机构的映射表,然后创建 用户属性 根据不同的用户获取机构信息。

4、设置行权限,点击 确定,会保存行权限。

5、去新建交互式仪表盘,并拖入组件,效果如下图:

6、使用demo_test登录,只能查看 华南区域数据:


通过SQL查询设置数据权限

 在SQL查询的where条件中设置数据权限表达式,实现方法请参见:SQL查询


4 数据模型参数控制数据权限

1、数据模型的查询必须含有参数。

2、数据模型 查询的参数必须在数据模型参数设置中定义好与“用户属性”或“函数”的关联。


数据模型中通过在参数定义中应用“用户属性”和“系统函数”来实现数据权限设置:将当前用户的属性与参数进行关联后,达到控制用户数据权限的目的。

示例:当前登录用户只允许查看其所属区域的数据

4.1 使用用户属性实现

1、在“运维设置”界面定义好如下用户属性:

2、创建数据模型,并且添加即席查询,并且拖入 发货区域作为筛选条件:

3、在数据模型的参数面板中定义参数引用“用户属性”:

4、保存数据模型。

5、基于该数据模型创建自助仪表盘后,用属于“华南”区域的用户“demo_test”登录查看效果:


4.1 使系统函数实现

1、创建数据模型,并且添加即席查询,并且拖入 发货区域作为筛选条件:

2、在数据模型的参数面板中定义参数引用“系统函数”:

3、保存数据模型。

4、基于该数据模型创建自助仪表盘后,用属于“华南”区域的用户“demo_test”登录查看效果: