Algumas vezes temos a necessidade de conceder privilégios para todas as tabelas para um novo usuário na base Postgres, e para facilitar nossa vida existe um comando muito simples:
GRANT SELECT,INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO NomeDoUsuario;
Em servidores Postgres mais antigos, você pode gerar a instrução SQL a partir de um select, utilizando o comando:
select ‘GRANT SELECT, INSERT, UPDATE, DELETE ON ‘ || tablename || ‘ TO NomeDoSeuUsuario;’ from pg_tables where schemaname = ‘public’;
Não esqueça de substituir NomeDoSeuUsuario pelo usuário que você criou e deseja conceder o privilégio.
Permissão para Sequences:
GRANT SELECT ON ALL SEQUENCES IN SCHEMA schema_name TO role_name
Se estiver utilizando o PGAdmin, copie o resultado retornado e cole em nova tela query execute. Rode o comando e as permissões serão concedidas imediatamente.
Caso queira remover os provilégios para as tabelas, execute a seguinte instrução:
select ‘REVOKE ALL ON ‘ || schemaname || ‘.’ || tablename || ‘ FROM NomeDoSeuUsuario;’ from pg_tables where schemaname = ‘public’;
Remover privilégios nas sequences:
REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM NomeDoSeuUsuario;