2

When a Proxy Authentication is used, there is the impersonated user (called the client) and the impersonating user (called the proxy). So if Bob wants all the privileges of App1 and has been granted the privilege to connect as App1, then the client is App1 and the proxy is Bob. I would like a query of sessions that provides both the client and the proxy.

v$session shows schemaname as the client user. It has osuser and machine columns from which the proxy may be inferred, but it would be fragile at best.

v$session_connect_info changes the column authentication_type to proxy when proxy authentication is in use, but that only indicates that proxying is in effect, not who the proxy is.

The proxy_users table gives all the potential proxy/client combinations, which would work if there were only one match for the client, but wouldn't otherwise.

As the proxy user a selection could be done of SYS_CONTEXT with a parameter of PROXY_USER to get it, but that does not allow a session to get the proxy for other sessions.

Update:

MOS Doc ID 782078.1 shows how this can be done by joining dba_audit_trail with itself if auditing is turned on specifically and the user performs an audited action. It seems like a simpler solution should exist.

  • You want to query all the users that are currently connected using the proxy? Am I right? – JSapkota Aug 5 '16 at 3:51
  • @JSapkota Yes, and get the proxy username. – Leigh Riffel Aug 5 '16 at 14:11
4
+25

I don't believe this info appears in any v$ or dba views. Using auditing is the only method.

  • +1 I hope this isn't correct, but I haven't been able to find another way either. – Leigh Riffel Aug 15 '16 at 14:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.