Skip to main content

Creating users in PostgreSQL

How to add a Read-Only User to a PostgreSQL Database:

** 1. Create a new user: **

CREATE USER username WITH PASSWORD 'your_password';

This creates a new user with given username and password. By default password is set to never expire.

** 2. Grant user access to connect to the database: **

GRANT CONNECT ON DATABASE database_name TO username;

** 3. Grant user access to specific schema: **

GRANT USAGE ON SCHEMA schema_name TO username;

** 4. Grant select access to table(s) **

For a specific table:

GRANT SELECT ON table_name TO username;

For all tables in specific schema:

GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO username;

Optional:

If you want user to have select access to all new tables created in the future:

ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name

GRANT SELECT ON TABLES TO username;