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;