Utilizzando i psql
meta-comandi:
https://www.postgresql.org/docs/current/static/app-psql.html
Passando sulla pagina con Ctrl + F si ottiene:
\ddp [ pattern ]
Elenca le impostazioni predefinite dei privilegi di accesso.
\dp [ pattern ]
Elenca tabelle, viste e sequenze con i loro privilegi di accesso associati.
\l[+] [ pattern ]
Elenca i database nel server e mostra .... i privilegi di accesso.
Anche menzionato sopra, ma non trovato con la parola "privilegi" nella pagina del manuale:
\du+
per i ruoli con login e \dg+
per i ruoli senza - sarà archiviato un file in "Member of"
cui si trovano ruoli assegnati ai ruoli.
Salto deliberatamente i privilegi di funzione e lingua qui, trovati nel psql
manuale come appena manipolati (e se usi quei privilegi non verrai qui per un consiglio). lo stesso vale per i tipi, i domini definiti dall'utente e così via: l'utilizzo di "+" dopo il meta-comando ti mostrerà i privilegi, se applicabile.
Un modo un po 'estremo per verificare i privilegi è far cadere l'utente in una transazione, ad esempio:
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 l'elenco è più lungo di N, (almeno in 9.3), l'avviso con l'elenco di privilegi viene compresso, ma è ancora possibile trovarlo pieno nei registri ...
\z myTable
è perfetto per assicurarti di aver concesso con successo l'accesso a qualcuno ed evitare di sembrare un idiota quando dici "va bene ora funziona? Non funziona ??? "