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

用户属性指用户的某项特征,例如用户所在的机构等。用户属性可以通过表达式及函数动态的获取,能方便地提供其他的资源使用。

用户属性一般应用于数据权限设置。

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

 

操作入口

在资源目录区的“用户属性”节点或已创建的用户属性文件夹的右键菜单中选择 新建 > 用户属性,进入“新建用户属性”界面。

界面介绍

 

“用户属性”界面主要分为以下几个区域:

  • 可选资源区:该区主要列出了设置用户属性需要使用的资源。
  • 用户属性设置区:该区列出了设置用户属性的所有设置项,其表达式使用的资源可从“可选资源区”中拖拽。

 

设置项说明

“用户属性设置区”设置项说明如下:

设置项

说明

名称

输入该用户属性的真名。

别名

输入该用户属性的别名。

类型

选择该用户属性的数据类型,主要包含:字符串、整型、浮点型、日期、时间、日期时间。

数据源

该用户属性所属的数据源,在进入“用户属性”界面前选择。

描述

对该用户属性的相关描述,该描述用于在资源目录区显示的提示信息中。

表达式

该用户属性的表达式,允用户属性表达式许使用的资源有:表、视图、字段。

 

使用说明

用户属性通常会和系统函数结合使用。

例如新建一个用户属性叫做"当前用户所属机构",此用户属性的含义是根据用户名获得了用户所在的部门。

它的表达式是:select org_code from t_org_info where usr_name =CurrentUserName( )。通常用户属性会使用在行权限设置的表达式中。

 

用户属性应用参考示例:

用户属性和数据权限的关系

数据权限和用户属性通常结合在一起使用。

  • 数据权限:数据权限是针对具体表,它是根据当前用户对字段数据的过滤,和字段权限相比它是一种横向的权限设置。
  • 用户属性:在新建的用户属性中通过系统函数得到用户所对应的属性。用户属性可以跨数据库使用,即从A库(比如是知识库)中取得用户属性,可应用于其它某个数据库的查询中。

具体步骤

下面以一个示例来说明用户属性和数据权限如何结合使用:

1、   设置用户属性。例如新建一个用户属性叫做"GetUserProperty(所属部门)",此用户属性的含义是根据用户名获得了用户所在的部门。它的表达式是:select depart from departmentTable where user =CurrentUserName( )。通常用户属性会使用在行权限设置的表达式中。

2、   设置数据权限。例如某个A表设置了数据权限,表达式是:A.department = GetUserProperty(所属部门);在可视化查询中,如果选择的字段涉及到表A,那么" A.department = GetUserProperty(所属部门)"会自动加入到 where部分去。这样,用户登录后,在可视化查询中选取A表中的字段,将只能看到该部门的数据了。即:
" select A.××× from A where A.department = GetUserProperty(所属部门)"
如果当前用户所属的部门为"部门A":
" select A.××× from A where A.department = (部门A)"
蓝色部分语句是系统自动添加。

 

注意事项

  • 用户属性的返回值实际上是SQL语句的where部分,如果用户属性返回多个值。这时候,就不能用"=",而应该用"in"。例如:数据行权限管理,表达式是:分行号 =GetUserProperty(所属分行) 改成:分行号 inGetUserProperty(所属分行)
  • GetUserProperty是一个系统自定义的函数,不能手写,要从左边的函数树中拖动到表达式编辑器中。
  • 使用用户属性管理和数据权限管理需要拥有【系统管理】的操作权限和相关的资源权限。
  • 无标签