3

我将使用 Application Express 和 Oracle Database Enterprise 构建应用程序,VPD 使用 Context 在架构上实现,针对开发人员问题,我在登录触发器上设置了用户;

但我无法查看应用程序内的数据,但我可以使用 SQL 语句查看它

那么当使用 VPD 、 Context 或 On 登录触发器时,他们在 Apex 中的问题是什么?

4

2 回答 2

2

在 Apex 中执行此操作的正确方法是使用应用程序安全设置的 VPD 属性:

Shared Components > Edit Security Attributes > Security

有一个部分标记为“虚拟专用数据库 PL/SQL 调用以设置安全上下文”(或类似的内容),将您的代码放在那里设置 VPD 上下文。它由 Apex 引擎针对每个页面视图执行。

于 2010-12-07T09:21:50.333 回答
1

可能与执行登录触发器的时间有关。

通常,Web 应用程序(包括 Apex)不会为每个连接到应用程序的用户提供数据库会话。相反,它将有一个数据库会话池(可能有 10 个),并在最终用户发出数据库请求时使用其中的任何一个。

哪个数据库用户用于登录以及可能使用多少会话都应该是可配置的,具体取决于您实施 Apex 的方式(嵌入式 PL/SQL 网关、Apex 侦听器或 Oracle HTTP 服务器)

简而言之,登录触发器可能是设置 CONTEXT 变量的错误位置。

于 2010-07-22T23:18:24.800 回答