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

说明

  • 数据权限:数据权限是针对具体表,它是根据当前用户对字段数据的过滤,和字段权限相比它是一种横向的权限设置。
  • 用户属性:在新建的用户属性中通过系统函数得到用户所对应的属性。用户属性可以跨数据库使用,即从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是一个系统自定义的函数,不能手写,要从左边的函数树中拖动到表达式编辑器中。
  • 使用用户属性管理和数据权限管理需要拥有【系统管理】的操作权限和相关的资源权限。
  • 数据权限设置只适用于表和视图,对存储过程查询和SQL查询建的报表不生效。
  • 无标签