2013-01-21 75 views
0

我正在创建Oracle Apex应用程序。Oracle Apex - 管理和用户

我的问题:

该应用程序有两面;管理和用户。管理的目的是将用户分配给组。

用户应该只能访问信息 - 他们已被分配的组。

例如; A先生被分配到A组 B先生被分配到B组 C先生被分配到组A,B和C

用户应只允许访问分配给他们的,而不是行政区域控制。只查看权限。

这可能吗? 我发现Oracle Apex难以让我的头脑发热!

回答

0

你有一些要求,其中的每一个可以建在顶点,但使用不同的功能:

  1. 管理员可以将用户分配到组。

  2. 只有管理员可以访问管理控制。

  3. 用户可以查看权限。

  4. 用户只能看到他们组的信息。

我会使用的Apex 授权计划采取#1,#2,#3护理。例如,创建一个名为“Administrator”的授权方案,该方案检查当前用户是否是管理员,然后将此方案应用于管理员应只能访问的任何页面,区域,按钮,项目等。

对于#4,有几个解决方案,我能想到的:

  1. 谓词 - 确保在应用程序检查每个查询根据自己组的数据是否是当前用户查看。

  2. 视图 - 将安全谓词封装在每个表的视图中,以便您不必在整个应用程序中重复此代码。

  3. Oracle VPD或行级别安全性(需要企业许可证) - 这隐藏了SQL级别后面的安全性谓词。

我已经使用上述所有3个选项用于不同的项目;第三个是用于相当大的应用程序,具有相当复杂的权限检查规则。 RLS使这个项目变得更简单,更容易建立和验证;但是在某些情况下,RLS可能会过度杀伤。