38

I have an application (based on the Qt library) which uses QPSQL driver.
In PostgreSQL, there are a few user roles defined (e.g: admin, operator, user). My application creates a connection to the Postgres server under a specified user. How can I check the user's role?

2 Answers 2

77

The manual:

SELECT current_user;  -- user name of current execution context
SELECT session_user;  -- session user name

Meaning, session_user shows the role you connected with, and current_user shows the role you are currently operating with, for instance after calling SET role some_other_role;.

Sign up to request clarification or add additional context in comments.

1 Comment

Just for the sake of completeness, if you want to know a set role from within a function with SECURITY DEFINER, use current_setting('role') as can be seen on the mailing list
14

You can check PostgreSQL user permissions with this query:

SELECT * FROM pg_roles;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.