2010-07-18 47 views
3

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

但使用VPD,上下文时,或登录触发器我无法查看里面的应用程序数据,但我可以用SQL语句

所以是他们的Apex问题的看法呢?

回答

1

可能与执行登录触发器。

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

的数据库用户用于登录和多少会话可以使用都应该配置取决于你是如何实现的Apex(嵌入式PL/SQL网关的Apex监听器或Oracle HTTP服务器)

总之,登录触发器可能是设置CONTEXT变量的错误地方。

2

的正确方法心尖做,这是使用的应用程序安全设置的VPD属性:

Shared Components > Edit Security Attributes > Security 

有一个名为“虚拟专用数据库PL/SQL调用设置安全环境”一节(或者那个效果),把你的代码放在那里设置VPD上下文。它由每个页面视图的Apex引擎执行。

相关问题