使用Application Express的VPD和Context

时间:2010-07-18 12:28:33

标签: oracle-apex

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

但我无法在应用程序中查看数据,但我可以使用SQL语句

查看它

使用VPD,Context或On log on触发器时,它们在Apex中的问题是什么?

2 个答案:

答案 0 :(得分:2)

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

Shared Components > Edit Security Attributes > Security

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

答案 1 :(得分:1)

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

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

根据您实现Apex(嵌入式PL / SQL网关,Apex侦听器或Oracle HTTP服务器)的方式,使用哪个数据库用户进行登录以及可以使用多少会话都应该是可配置的

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