sexta-feira, 23 de janeiro de 2015

Como gerar os comandos GRANT de SELECT para Postgres anterior ao 9

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