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:
\ddp [ pattern ]
Lista as configurações de privilégio de acesso padrão.
\dp [ pattern ]
Lista tabelas, visualizações e sequências com seus privilégios de acesso associados.
\l[+] [ pattern ]
Liste os bancos de dados no servidor e mostre .... privilégios de acesso.
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:
s=# begin; drop user x;
BEGIN
Time: 0.124 ms
ERROR: role "x" cannot be dropped because some objects depend on it
DETAIL: privileges for type "SO dT"
privileges for sequence so
privileges for schema bin
privileges for table xx
privileges for table "csTest"
privileges for table tmp_x
privileges for table s1
privileges for table test
Time: 0.211 ms
s=# rollback;
ROLLBACK
Time: 0.150 ms
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 ...
\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 ??? "