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

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »


即席查询是基于数据源或是业务主题来创建的。

所以其根据来源不同需设置不同的数据权限,比如即席查询基于数据源创建,则需对其数据源进行数据权限设置。若基于业务主题创建,则需对其业务主题创建数据权限。

下面我们演示基于业务主题创建的即席查询如何设置数据权限。

1、   设置系统用户和机构的关系。

此处我们在创建用户的时候,设置其所属组即是其机构。即我们根据用户所属组的信息可以得到其机构信息。

如下图,我们设置用户test的属于组"华东"。

2、   设置数据权限。建立数据库表中的机构字段和当前用户的关联关系。

在需要设置数据权限的业务主题的更多操作菜单中选择 设置数据权限则会进入数据权限设置界面。

在右侧设置区内,选择业务主题对应数据源下的"顾客表"表右键选择 设置 按钮,则右侧会出现数据权限列表,点击 添加

切换为 高级设置,从左侧拖拽"顾客表"表中的"区域"字段到表达式区域,然后输入等于号,再从左侧资源树下拖拽系统函数获取当前用户默认值名称CurrentUserDefaultDepartmentName()到表达式区域。如下图:

       

用户属性例子

上面例子是简单的例子,使用系统内置的函数,取当前用户所属机构与数据库字段进行关联来控制权限。在实际的应用中,通常是通过用户属性功能,从数据库的用户权限配置表中,根据当前用户名获取对应能获取的数据。

例如,新建一个用户属性叫做"获取当前用户访问权限”,此用户属性的含义是根据用户名获得了用户所在的部门。它的表达式是:select depart from departmentTable where user =CurrentUserName( )。用户属性设置如下图所示:

在数据权限设置中,将字段与此用户属性进行关联。

注意:用户属性的返回值实际上是SQL语句的where部分,如果用户属性返回多个值。这时候,就不能用"=",而应该用"in"。例如:数据行权限管理,表达式是:发货区域 =获取用户权限  ,改成:发货区域 in (获取用户权限)。

数据权限设置如下所示:

3、  (可选) 设置应用范围,此处我们设置管理员用户不受此数据权限的影响。

我们在数据权限的范围定义区域,选择用户按钮,则会弹出 用户范围 对话框。我们从左侧可选用户列表中选中"管理员"用户到被选择用户区域。

设置完成后点击 保存 按钮,则完成对数据源数据权限的设置。设置数据权限的表会有锁的显示标注。

4、   效果演示,此处我们分别使用管理员用户和test用户查看效果。

管理员用户:使用管理员用户登录选择“订单主题”创建即席查询,并选择"顾客"表中的字段。

因管理员用户不在数据权限控制范围内,因此其对应的即席查询不受数据权限控制。

test用户:使用test用户登录选择“订单主题”创建即席查询,并选择"顾客"表中的字段。

因为test用户所属组为"华东"。则我们通过数据权限会会区域字段中的华东值进行限制。

查看SQL。可以发现其SQL语句把通过函数获取到的用户所属组名称放到where条件。

注意事项

基于业务主题和数据源创建的即席查询,在进行抽取后也支持设置数据权限:


  • 无标签