How do you create a user and grant privileges in PostgreSQL?

Answer

Create a user (role): CREATE USER username WITH PASSWORD 'secret'; or CREATE ROLE username LOGIN PASSWORD 'secret';. Grant database connection: GRANT CONNECT ON DATABASE mydb TO username;. Grant schema usage: GRANT USAGE ON SCHEMA public TO username;. Grant table permissions: GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO username;. Grant for future tables: ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO username;. Revoke: REVOKE INSERT ON tablename FROM username;. Grant all privileges: GRANT ALL PRIVILEGES ON DATABASE mydb TO username;. List privileges: \dp tablename in psql. The postgres superuser bypasses all permission checks.