版本比较
标识
- 该行被添加。
- 该行被删除。
- 格式已经改变。
针对关系数据源创建的数据权限。
在关系数据源中通过对查询的目标表设置数据权限,当即席查询和可视化数据集中涉及到这个数据源的这些表时,数据权限设置条件会自动启用。
操作入口
入口一:在关系数据源的更多操作Image Modified,选择 设置数据权限
,进入“数据权限设置”界面。

Image Added
入口二
:在关系数据源下的表中选择更多操作:在关系数据源下的一张表中选择更多操作Image Modified,选择 设置数据权限,进入“数据权限设置”界面。
Image Modified
在表的更多操作Image Removed,选择 设置,“数据权限设置区”呈可编辑状态,在该处设置数据权限即可。

设置数据权限
1、选择需要设置数据权限的表,在表的更多操作Image Added,选择 设置。
Image Added
3、选择添加按钮,添加一条数据权限的设置。
Image Added
设置数据权限设置方式分为“简单设置”和“高级设置”。
简单设置
1、根据需求选择数据的使用范围。详情可查看 适用范围 。
Image Added
2、选择 简单设置 按钮。设置对应的数据的条件关系,然后点击 设置条件关系 按钮。详情可查看 实现原理 。
Image Added
设置的数据关系如图:
Image Added
3、点击 保存 按钮,进行保存。简单设置数据权限完成。
高级设置
1、根据需求选择适用或不适用的用户、角色,并选择 高级设置 按钮。详情可查看 适用范围 。
Image Added
2、设置数据权限后,点击 保存 按钮。详情可查看 实现原理 。
Image Added
高级设置数据权限完成。
界面介绍
“数据权限设置”界面主要分为以下几个区域:
可选资源区:该区主要列出了设置数据权限可使用的资源。
表达式设置区:该区主要用于编辑数据权限的表达式,设置数据权限表达式的资源可从“可选资源区”中拖拽。
范围定义区:该区主要是对数据权限生效的范围进行定义,包括适用的用户组、用户、角色以及优先级等。该区设置项说明如下:
设置项 | 说明 |
---|---|
适用对象 | 表示通过设置数据权限生效对象,主要有:用户组、角色、用户。这三类选项取并集。 |
优先级 | 表示当数据源存在多个数据权限时,优先执行的数据权限。数据权限优先级的数字越大,则该数据权限越先被执行 |
适用范围 | 适用范围主要有两个:
|
适用范围
用于设置数据权限对于用户生效的范围,比如很多情况下我们对于管理员用户是不希望其受到数据权限的影响的。
Image Added
是否适用
适用于:表示属于“适用对象”内的用户才执行当前数据权限。
不适用于:表示不属于“适用对象”内的用户才执行当前数据权限。
适用范围
可以选择的适用对象有:角色、用户、用户组。
Image Added
实现原理
简单设置方式
优先级
表示当数据源存在多个数据权限时,优先执行的数据权限。数据权限优先级的数字越大,则该数据权限越先被执行。比如我们设置同一个数据源下两张表的数据权限,则根据优先级设置有如下两种情况:
两张表的数据权限优先级都设置为0。则数据权限中两个表的数据权限同时生效,条件之间是and关系。
若某张表的数据权限优先级大于另外一张表的数据权限,并且我们在资源中同时使用了这两张表,则数字大的执行优先级高,资源中只有数字大的数据权限生效。
下面我们以基于数据源的即席查询为例演示数据权限执行优先级。若某张表的数据权限优先级大于另外一张表的数据权限,并且我们在资源中同时使用了这两张表,则数字大的执行优先级高,资源中只有数字大的数据权限生效。
我们对northwind数据源下的orders设置数据权限如下图,并设置其优先级为0。
我们对northwind数据源下的customers设置数据权限如下图,并设置其优先级为0。
使用用户test(其用户组名称为"华北",用户别名"北京")登录系统,创建即席查询,并从orders和customers都勾选字段。
则customers和orders的权限都生效,如下图:
修改northwind数据源下的customers数据权限的优先级为1,customers的数据权限大于orders的数据权限优先级,则只会执行customers的数据权限。
数据如下:
修改northwind数据源下的orders数据权限的优先级为2,orders的数据权限大于customers的数据权限优先级,则只会执行orders的数据权限。
数据如下:
适用范围
用于设置数据权限对于用户生效的范围,比如很多情况下我们对于管理员用户是不希望其受到数据权限的影响的。适用范围操作入口:在数据权限窗口点击范围定义中的用户组、用户、角色等按钮,则会弹出对应的选择框。目前包含两类范围:
Image Removed
- 适用于此范围:表示属于“适用对象”内的用户才执行当前数据权限。
- 不适用于此范围:表示不属于“适用对象”内的用户才执行当前数据权限。
高级设置
对于基于关系数据源的资源,我们实际上是通过SQL语句的where条件来实现不同的用户登录看到不同的数据。比如报表对应的执行SQL语句为select A.××× from A,如果要实现不同的用户登录进来看到的数据不同,我们需要给这个报表对应SQL加where限制条件。如下:
代码块 | ||
---|---|---|
| ||
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关联即可。
若无法直接根据当前用户的信息获取到机构信息,则需要用户和机构的映射表,然后创建 用户属性 根据不同的用户获取机构信息。
设置数据权限
1、在关系数据源的更多操作Image Removed,选择 设置数据权限,则进入“数据权限设置”界面。
Image Removed
2、右键选择需要设置的表,选择设置
Image Removed
3、选择添加按钮,进入数据权限设置界面。
Image Removed
设置数据权限分为“简单设置”和“高级设置”。
简单设置
1、根据需求选择适用或不适用的用户、角色。
Image Removed
2、选择 简单设置 按钮。
3、设置数据的条件关系,然后点击 设置条件关系 按钮。
Image Removed
设置的数据关系如图:
Image Removed
4、点击 保存 按钮,进行保存。简单设置数据权限完成。
高级设置
1、根据需求选择适用或不适用的用户、角色,并且选择 高级设置 按钮。
Image Removed
2、设置数据权限后,点击 保存 按钮。
Image Removed
面板 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
|