Utiliser les psql
méta-commandes:
https://www.postgresql.org/docs/current/static/app-psql.html
Passer en revue la page avec Ctrl + F donne:
\ddp [ pattern ]
Répertorie les paramètres de privilège d'accès par défaut.
\dp [ pattern ]
Répertorie les tables, les vues et les séquences avec leurs privilèges d'accès associés.
\l[+] [ pattern ]
Répertoriez les bases de données sur le serveur et montrez .... les privilèges d'accès.
Également mentionné ci-dessus, mais ne se trouve pas avec le mot "privilèges" dans la page de manuel:
\du+
pour les rôles avec connexion et \dg+
pour les rôles sans - aura un fichier dans "Member of"
lequel vous trouverez les rôles attribués aux rôles.
Je saute délibérément des privilèges de fonction et de langage ici, trouvés dans le psql
manuel comme étant à peine manipulés (et si vous utilisez ces privilèges, vous ne viendrez pas ici pour un conseil). idem pour les types définis par l'utilisateur, les domaines, etc. - l'utilisation de "+" après la méta-commande vous indiquera les privilèges, le cas échéant.
Un moyen un peu extrême de vérifier les privilèges consiste à laisser l'utilisateur en transaction, par exemple:
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
Lorsque la liste est plus longue que N (au moins en 9.3), l'avertissement avec la liste des privilèges est réduit, mais vous pouvez toujours le trouver complet dans les journaux ...
\z myTable
est parfait pour vous assurer que vous avez accordé l'accès à quelqu'un et que vous évitez de ressembler à un idiot lorsque vous dites "d'accord, est-ce que ça marche maintenant? ça ne