I'm going to build application using Application Express and Oracle Database Enterprise, VPD Implemented on the schema using Context, for developer issue I set on login trigger to set user;
but I can't v开发者_运维百科iew data inside application but I can view it using SQL statement
So is their issue in Apex when using VPD , Context , or On log on trigger?
The proper way to do this in Apex is to use the VPD attribute of the application security settings:
Shared Components > Edit Security Attributes > Security
There is a section labelled "Virtual Private Database PL/SQL call to set security context" (or something to that effect), put your code to set the VPD context there. It is executed by the Apex engine for every page view.
Probably to do with when the logon trigger is executed.
Generally a web-application (including Apex) won't have a database session for each user connected to the application. Rather it will have a pool of database sessions (perhaps 10) and will use any one of them when an end-user issues a database request.
Which database user is used for the logon and how many sessions might be used should all be configurable depending on how you are implementing Apex (embedded PL/SQL gateway, Apex listener or Oracle HTTP server)
In short, a logon trigger is probably the wrong place to set the CONTEXT variable.
精彩评论