Forum Stats

  • 3,768,260 Users
  • 2,252,769 Discussions
  • 7,874,508 Comments

Discussions

Database user for subscriptions

Barry B
Barry B Member Posts: 32 Red Ribbon

Hi,

When running 'select user from dual' on an interactive report we get ANONYMOUS

When subscibing to that report, the same query presents SYS

The 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.

Tagged:

Answers

  • Barry B
    Barry B Member Posts: 32 Red Ribbon

    Sorry, we're on Apex 18

    Oracle database is 12

  • AndyH
    AndyH Member Posts: 747 Bronze Trophy

    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
    Barry B Member Posts: 32 Red Ribbon

    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
    AndyH Member Posts: 747 Bronze Trophy

    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
    Barry B Member Posts: 32 Red Ribbon
    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
    AndyH Member Posts: 747 Bronze Trophy

    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
    Barry B Member Posts: 32 Red Ribbon

    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?