在用户级别过滤数据

预订级别、组级别或用户级别的水平过滤使用 SQL 子句来从源数据源选择数据。SQL 子句的内容由“高级预订定义”笔记本的“行”页(对于 DB2 DataPropagator 预订)和“高级复制预订”笔记本的“行”页(对于 JDBC 预订)控制。

过程

  1. 在“行”页上,在个别用户的行子集框中输入 SQL 子句。不要在 SQL 子句开头输入 WHERE。WHERE 会自动追加至框中输入的子句。不要使用 SQL 子句中的值,而是插入参数。例如,要根据表示 city 列的参数 :fcity 的值和表示 id 列的参数 :fid 的值过滤 VNPERSON 表,输入:
    city=':fcity' and id=':fid'
    

    其中 :fcity 是表示 city 列值的参数,而 :fid 是表示 id 列值的参数。

  2. 完成并关闭“创建预订”笔记本。
  3. 对想要过滤的用户组打开“创建或编辑组”笔记本。必须将想要使用过滤器参数创建的预订指定给正在编辑的组。
  4. 在“组”笔记本的“数据过滤器”页上,单击添加
  5. 参数名称字段中输入 :fcity
  6. 缺省值字段中输入缺省值。例如:
    Los Angeles, CA 90061
    
  7. 单击确定
  8. 再次单击添加来添加第二个参数。
  9. 参数名称字段中输入 :fid.
  10. 单击确定
  11. 完成并关闭“组”笔记本。
  12. 对想要过滤的用户打开“创建或编辑用户”笔记本。必须将该用户指定给带有过滤器参数的组。
  13. 在“组”笔记本的“数据过滤器”页上,选择 :fid 参数并单击更改
  14. 用户覆盖字段中输入一个值。例如,要对此用户覆盖 :fid 的值,并将其设置为 900000401,输入:
    900000401
    
  15. 单击确定

该用户将只接收 city 列值为 Los Angeles, CA 90061 且 id 列值为 900000401 的记录。VNPERSON 中有一个记录具有此值。指定给同一个组的其他用户将只接收 VNPERSON 表中 city 列值等于 Los Angeles, CA 90061 且具有用户的数据过滤器设置的用户列值的行。其它组将接收整个 VNPERSON 表或 VNPERSON 表的特定子集,这要视配置的过滤器而定。

相关任务

相关参考