Hasan
Hasan

Reputation: 39

VPD and Context With Application Express

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 view 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?

Upvotes: 3

Views: 2391

Answers (2)

ObiWanKenobi
ObiWanKenobi

Reputation: 14902

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.

Upvotes: 2

Gary Myers
Gary Myers

Reputation: 35401

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.

Upvotes: 1

Related Questions