Estou no meio de uma migração de servidor de banco de dados e não consigo entender (depois de pesquisar e pesquisar aqui) como listar os privilégios do banco de dados (ou todos os privilégios no servidor) no PostgreSQL usando a psql
ferramenta de linha de comando?
Estou no Ubuntu 11.04 e minha versão do PostgreSQL é 8.2.x.
postgresql
ubuntu
permissions
psql
pedrosanta
fonte
fonte
\z myTable
é perfeito para garantir que você concedeu com sucesso o acesso a alguém e evitando olhar como um idiota quando você diz "tudo bem ele funciona agora? não ??? "talvez você queira listar usuários e seus privilégios para um banco de dados - não sei exatamente pela pergunta:
fonte
Você pode fazer isso seguindo:
Isso fornece esse tipo de saída:
fonte
Usando
psql
meta-comandos:https://www.postgresql.org/docs/current/static/app-psql.html
Passar o mouse sobre a página com Ctrl + F fornece:
Também mencionado acima, mas não encontrado com a palavra "privilégios" na página de manual:
\du+
para funções com login e\dg+
para funções sem - terá um arquivo"Member of"
onde você encontrará funções concedidas a funções.Eu pulo deliberadamente os privilégios de função e idioma aqui, encontrados no
psql
manual como pouco manipulados (e se você usar esses privilégios, não virá aqui para um conselho). o mesmo para tipos definidos pelo usuário, domínios e assim por diante - usar "+" após o meta-comando mostrará privilégios, se aplicável.Uma maneira um pouco extrema de verificar os privilégios é descartar o usuário na transação, por exemplo:
Quando a lista é maior que N, (pelo menos na 9.3), o aviso com a lista de privilégios é recolhido, mas você ainda pode encontrá-la completa nos logs ...
fonte
Undercovers psql usa a consulta abaixo quando você emite o
\du
comando.fonte
Uma etapa adicional (possivelmente óbvia) é se tornar o usuário do postgres, caso contrário, você poderá obter erros sobre as funções que não existem.
ou
fonte
resultado
fonte