1. Conectar no banco de dados
2. Executar: GRANT CONNECT ON DATABASE "nomeDoBanco" TO nomeDaRole;
3. Executar: GRANT USAGE ON SCHEMA public TO nomeDaRole;
4. Executar o comando ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO nomeDaRole;
5. Executar: GRANT SELECT ON ALL TABLES IN SCHEMA public TO nomeDaRole;
6. Se o PostgreSQL for anterior a versão 9 executar os comandos gerados por:
SELECT 'GRANT SELECT ON ' || relname || ' TO nomeDaRole;'
FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
WHERE nspname = 'public' AND relkind IN ('r', 'v', 'S');
Fonte: http://stackoverflow.com/questions/760210/how-do-you-create-a-read-only-user-in-postgresql