0

我们有一个 XML Publisher 模板,它使用查询(内置查询管理器)作为数据源。该查询使用包含机密数据的自定义视图。经理可以使用该报告来查看其直接下属的信息——这是通过在页面上设置参数来完成的。由于我们必须将记录提供给 Query,因此任何具有编写查询权限的经理也可以看到该记录,从而查看除向他们报告的员工之外的员工数据。查询也必须是公开的,因此任何有权运行查询的人都可以使用它。我们希望能够:

  1. 使查询仅通过页面可用(我想我有这个 - 页面将传递一个附加参数,该参数将在查询的 WHERE 子句中进行比较)

  2. 对除查询/报告之外的任何人隐藏自定义记录

我们不能使用典型的行级安全性,因为总经理应该只能看到向他们报告的人。

谢谢

4

2 回答 2

0

要在用户尝试查询特定记录(使用查询管理器)时对显示的数据启用安全性,您可以使用查询安全记录,您可以在其中验证尝试访问数据的用户。通常,此处使用动态视图,您可以在其中检查试图访问数据的 OPRID,并相应地提供数据。Querymanager 会自动在 sql 中提取查询安全记录。

于 2012-05-08T07:05:10.370 回答
0

我没有太多使用 XML Publisher,但我不得不做一些类似的事情(减去保密要求)。

是否所有在经理手下工作的人都设置在同一个部门 ID 下?PSOPRDEFN 表存储映射到 EmplID 的 OPRID/用户 ID,您可以将其链接到 JOB 表以获取 EmplID 的 DeptID。

因此,将查询的条件设置为将其限制为当前用户的部门 ID。我在 Oracle 10g 中找到了如何做到这一点的语法,但是当我尝试它时,它似乎不适用于 11g。http://www.techonthenet.com/oracle/functions/user.php http://www.techonthenet.com/oracle/functions/sys_context.php

于 2012-01-13T17:33:41.463 回答