Existe um one-liner que concede as permissões SELECT a um novo usuário postgresql?
Algo que implementaria o seguinte pseudo-código:
GRANT SELECT ON TABLE * TO my_new_user;
Existe um one-liner que concede as permissões SELECT a um novo usuário postgresql?
Algo que implementaria o seguinte pseudo-código:
GRANT SELECT ON TABLE * TO my_new_user;
Achei que poderia ser útil mencionar que, a partir do 9.0, o postgres tem a sintaxe para conceder privilégios em todas as tabelas (assim como em outros objetos) em um esquema:
Aqui está o link .
Minha solução (não one-liner):
Executar a partir do usuário privilegiado, funcionou como um encanto.
Isso pode ser feito com um processo de duas etapas.
Execute esta consulta:
Substituições:
$foo
= nome de usuário para o qual você deseja conceder permissões$bar
,$baz
= esquemas para os quais deseja conceder permissões (pode ser apenas "público")Isso fornecerá uma lista de consultas que gerarão as permissões necessárias. Copie a saída, cole-a em outra consulta e execute.
Acabei fazendo isso e funcionou:
Acabei aqui porque meu usuário de banco de dados viu apenas algumas tabelas e não as mais recentes. Se este é o seu caso, isso me ajudou.
Conceda privilégios a todas as tabelas existentes :
Conceda privilégios a todas as novas tabelas a serem criadas no futuro (via privilégios padrão):
Você também pode verificar novamente se todas as tabelas foram concedidas corretamente.
Conte todas as tabelas existentes:
Conte todas as tabelas às quais o usuário tem acesso:
A contagem das duas últimas consultas deve ser a mesma.
Isto é o que eu usei:
Eu sinto que é mais natural fazer formatação e cláusulas where no sql ..
Estou trabalhando com postgres 8.4 e para dar todos os privilégios a um usuário faça o seguinte:
uma maneira de corrigir isso é escrever um procedimento armazenado. infelizmente não existe um comando "conceder tudo a todas as tabelas" ou algo assim. você realmente precisa de um procedimento ou algum script de shell externo talvez para fazer isso funcionar.
O script (solução de uma linha) de Adam Matan é ótimo quando há muitos esquemas, mas não funciona onde nomes de esquemas ou nomes de tabelas contêm letras maiúsculas ou caracteres especiais.
Versão modificada: