页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

针对关系数据源创建的数据权限。

在关系数据源中通过对查询的目标表设置数据权限,当即席查询和可视化数据集中涉及到这个数据源的这些表时,数据权限设置条件会自动启用。

设置数据权限

1、进入数据权限设置页面。

入口一:在关系数据源的更多操作,选择 设置数据权限,进入“数据权限设置”界面。

选择需要设置数据权限的表,在表的更多操作,选择 设置设置 ,进入“设置”界面。

入口二:在关系数据源下需要设置数据权限的表中选择更多操作,选择 设置数据权限,进入“设置”界面。

Image RemovedImage Added2、选择添加按钮,添加一条数据权限的设置。

2、选择 添加 按钮,添加一条数据权限的设置。

 3、设置数据权限对于用户生效的范围。

设置数据权限设置方式分为“简单设置”和“高级设置”。Image Added

简单设置

适用范围
1、根据需求选择数据的使用范围。详情可查看 范围定义

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

Image Removed

2、选择 简单设置 按钮。设置对应的数据的条件关系,然后点击 设置条件关系 按钮。详情可查看 实现原理

Image Removed

设置的数据关系如图:

Image Removed

3、点击 保存 按钮,进行保存。简单设置数据权限完成。

高级设置

1、根据需求选择适用或不适用的用户、角色,并选择 高级设置 按钮。详情可查看 范围定义 。

Image Removed

2、设置数据权限后,点击 保存 按钮。详情可查看 实现原理

Image Removed

高级设置数据权限完成。

范围定义

用于设置数据权限对于用户生效的范围,比如很多情况下我们对于管理员用户是不希望其受到数据权限的影响的。

Image Removed

适用范围

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

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

适用对象

表示通过设置数据权限生效对象,主要有:用户组、角色、用户。这三类选项取并集。

Image Removed

实现原理

简单设置

简单设置是先在可选列中设置条件。然后点击 设置条件关系 按钮,设置多个条件之间的关系。

Image Removed

设置的条件之间的关系有两种and和or关系,对应的是数据库中的SQL语句:

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

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

高级设置

高级设置页面分为可选资源区、表达式设置区。

Image Removed

  • 可选资源区:该区主要列出了设置数据权限可使用的资源。

  • 表达式设置区:该区主要用于编辑数据权限的表达式,设置数据权限表达式的资源可从“可选资源区”中拖拽。不适用于:表示不属于“适用对象”内的用户才执行当前数据权限。

适用对象

设置数据权限生效对象,主要有:用户组、角色、用户。这三类选项取并集。

Image Added

设置数据权限设置方式分为“简单设置”和“高级设置”。

简单设置

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

Image Added

2、设置多个条件之间的关系。

Image Added

设置的条件之间的关系有两种and和or关系,对应的是数据库中的SQL语句:

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

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

3、点击 确定 按钮,设置了表的一条数据权限。

Image Added

4、点击 保存 按钮,保存设置。简单设置数据权限完成。

高级设置

1、根据需求选择适用或不适用的用户、角色,并选择 高级设置 按钮。

Image Added

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

Image Added

表达式设置区:

对于基于关系数据源的资源,我们实际上是通过SQL语句的where条件来实现不同的用户登录看到不同的数据。比如报表对应的执行SQL语句为select A.××× from A,如果要实现不同的用户登录进来看到的数据不同,我们需要给这个报表对应SQL加where限制条件。如下:

代码块
languagetext
select A.xxx from A where A.department = ?


其中“ ?”号获取的值是根据不同的用户登录动态变化的:

  • 如广州用户登录,会得到"广州"这个机构值,然后把这个机构值加到SQL语句中,就会得到广州的数据。对应SQL类似如下:select A.××× from A where A.department ='广州'

  • 如北京用户登录,会得到"北京"这个机构值,然后把这个机构值加到SQL语句中,就会得到北京的数据。对应SQL类似如下:select A.××× from A where A.department ='北京'

因此,我们需要根据不同的用户登录获取到这个用户所属的机构。那我们如何获取到用户所属机构呢?Smartbi产品默认自带 系统函数 和 用户属性 功能可以获取到用户所属属性。

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

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

3、点击 确定 按钮,设置了表的一条数据权限。

Image Added

4、点击 保存 按钮,保存设置。

Image Added

高级设置数据权限完成。

面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid

目录