Find Users logged into PostgreSQL

Course- PostgreSQL >

Question:Is there a query to run that will return all Users that are currently logged into PostgreSQL?

Answer: In PostgreSQL, there is a system view called pg_stat_activity which shows the current processes being run in the database. You can run a query against this system view that returns all of the Users that are currently have a process running in the PostgreSQL database.

To retrieve all Users logged into PostgreSQL, you can execute the following SQL statement:

SELECT DISTINCT usename

FROM pg_stat_activity;

This SELECT statement will return the users that are currently running a process in PostgreSQL.

TIP: You must have superuser privileges to see processes owned by other users. Otherwise, you will only see your own processes.

The pg_stat_activity view contains the following columns:

Column

Explanation

datid

Database ID where process is running

datname

Database name where process is running

pid

Process ID

usesysid

User ID (number assigned by PostgreSQL)

usename

User name (ie: postgres, fastread.aitechtonic, etc)

application_name

Application name

client_addr

Client's address

client_hostname

Client's hostname

client_port

Client's port number

backend_start

 

xact_start

 

query_start

Time when query was started

state_change

Time when the query's state was changed

waiting

Boolean value indicating query's waiting status (t or f)

state

State of query (ie: idle, active)

query

Current query