针对关系数据源创建的数据权限。
在关系数据源中通过对查询的目标表设置数据权限,当即席查询和可视化数据集中涉及到这个数据源的这些表时,数据权限设置条件会自动启用。
在关系数据源的更多操作,选择 设置数据权限,则进入“数据权限设置”界面。
在表的更多操作,选择 设置,“数据权限设置区”呈可编辑状态,在该处设置数据权限即可。
“数据权限设置”界面主要分为以下几个区域:
设置项 | 说明 |
---|---|
适用对象 | 表示通过设置数据权限生效对象,主要有:用户组、角色、用户。这三类选项取并集。 |
优先级 | 表示当数据源存在多个数据权限时,优先执行的数据权限。数据权限优先级的数字越大,则该数据权限越先被执行 |
适用范围 | 适用范围主要有两个:
|
表示当数据源存在多个数据权限时,优先执行的数据权限。数据权限优先级的数字越大,则该数据权限越先被执行。比如我们设置同一个数据源下两张表的数据权限,则根据优先级设置有如下两种情况:
下面我们以基于数据源的即席查询为例演示数据权限执行优先级。若某张表的数据权限优先级大于另外一张表的数据权限,并且我们在资源中同时使用了这两张表,则数字大的执行优先级高,资源中只有数字大的数据权限生效。
用于设置数据权限对于用户生效的范围,比如很多情况下我们对于管理员用户是不希望其受到数据权限的影响的。适用范围操作入口:在数据权限窗口点击范围定义中的用户组、用户、角色等按钮,则会弹出对应的选择框。目前包含两类范围:
对于基于关系数据源的资源,我们实际上是通过SQL语句的where条件来实现不同的用户登录看到不同的数据。比如报表对应的执行SQL语句为select A.××× from A,如果要实现不同的用户登录进来看到的数据不同,我们需要给这个报表对应SQL加where限制条件。如下:
select A.xxx from A where A.department = ? |
其中“ ?”号获取的值是根据不同的用户登录动态变化的:
因此,我们需要根据不同的用户登录获取到这个用户所属的机构。那我们如何获取到用户所属机构呢?Smartbi产品默认自带 系统函数 和 用户属性 功能可以获取到用户所属属性。