Two Practical Ways to List Users in PostgreSQL

Two Practical Ways to List Users in PostgreSQL

Database management often involves reviewing user access and permissions. PostgreSQL offers two effective ways to list users: through the psql command-line interface and using SQL queries. Let’s explore how you can quickly get this information.

How to list users in PostgreSQL

Use the psql tool

The psql terminal connects directly to your PostgreSQL server, enabling you to interact with the database. Here’s how:

Connect to PostgreSQL

Open your terminal and log in with:

psql -U <username>

Replace <username> with your PostgreSQL account.

Run the \\du Command

Execute:

\\du

This lists all users and their associated roles.

Get Additional User Details

For more in-depth information, use:

\\du+

Execute an SQL Query

If you prefer a structured query, access the pg_user view in PostgreSQL’s system catalog.

Run the Query

Use this command:

SELECT * 
FROM pg_catalog.pg_user;

Analyze the Output

This query provides a table with columns for usernames, permissions, and other attributes. For example:

  • usename: Name of the user.

  • usesuper: Indicates superuser status.

  • passwd: Placeholder for passwords.

FAQ

How to filter only superusers?

Use this SQL command:

SELECT * 
FROM pg_catalog.pg_user 
WHERE usesuper = true;

This returns users with superuser privileges.

Can I find active sessions in PostgreSQL?

Yes, by querying pg_stat_activity:

SELECT * 
FROM pg_catalog.pg_stat_activity 
WHERE state = 'active';

Why enforce authentication for listing users?

Authentication protects sensitive information, ensuring that only authorized personnel can access user data.

What tool improves PostgreSQL user management?

A client like DbVisualizer simplifies the process with a GUI for running queries and visualizing results.

Conclusion

PostgreSQL simplifies user management with tools like psql and structured queries. These approaches make it easy to understand and control user roles. For a deeper dive, check out the article Postgres List Users: Two Different Approaches.