Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Database user for subscriptions

Barry BSep 28 2021

Hi,
When running 'select user from dual' on an interactive report we get ANONYMOUS
image.pngWhen subscibing to that report, the same query presents SYS
image.pngThe user is important in many of our reports, and while we can work around it, it would be nice to know if there is any setting we could do in Apex or the databse to ensure that the email subsription system variable USER returns ANONYMOUS instead of SYS.

Thanks.

Comments

Barry B

Sorry, we're on Apex 18
Oracle database is 12

AndyH

In APEX you should probably be referring to the 'APP_USER' variable to get the name of the user running your application e.g.

select v('APP_USER') from dual;
select sys_context('APEX$SESSION','APP_USER') from dual;

This assumes that your users have to authenticate to use the page, otherwise, you use will always be app_user 'nobody' and 'APEX_PUBLIC_USER' if you refer to 'USER'.
I'm not sure why you are seeing the 'ANONYMOUS' user: that's usually associated with XDB. I assume that you're not using the Embedded PL/SQL Gateway to access your application?

Barry B

Hi,

I agree. Unfortunately over a hundred reports have been created before my time using the USER variable.
This ANONYMOUS user is then configured on a custom table to produce a local language. It is what it is...
Unfortunately that logic doesn't work when the interactive reports are subscribed to.
So I was wondering how/where ths SYS value comes from, and whether there is any database or Apex setting that we could change to turn the "USER" variable from SYS into ANONYMOUS (i.e the same behaviour as we get on the application).

Barry

AndyH

You can change USER - it's 'owned' by Oracle.
If you are seeing 'SYS' when you query USER e.g.

select user from dual

then you have a very strange setup.
However, if 'SYS' is a username in your application e.g. you have some form of custom authentication then you'll need to investigate from that side.

Barry B
select user from dual

Equal SYS: This is what is happening on the subscription. I was wondering where that is set.
Equals ANONYMOUS from Apex. I don't know where that is set, but it doesn't matter anyway.
Ideally we would like it to be ANONYMOUS for both. This is what I'm asking, sorry for not being clear.

AndyH

Presumably, you've not installed your application within the SYS schema? That would be very bad.
You cannot change the value returned by USER.

Barry B

if you "select user from dual" in apex as an interactive report, what do you get?
If you subscribe to it , what do you get?

1 - 7

Post Details

Added on Sep 28 2021
7 comments
263 views