Je suis au milieu d'une migration de serveur de base de données et je ne peux pas comprendre (après avoir googlé et recherché ici) comment répertorier les privilèges de la base de données (ou tous les privilèges sur le serveur) sur PostgreSQL à l'aide de l' psql
outil de ligne de commande?
Je suis sur Ubuntu 11.04 et ma version de PostgreSQL est 8.2.x.
postgresql
ubuntu
permissions
psql
Pedrosanta
la source
la source
\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 nepeut-être que vous voulez dire par la liste des utilisateurs et de leurs privilèges pour une base de données - je ne peux pas dire très bien de la question:
la source
Vous pouvez le faire en suivant:
Cela vous donne ce genre de sortie:
la source
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:
É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:
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 ...
la source
Undercovers psql utilise la requête ci-dessous lorsque vous exécutez une
\du
commande.la source
Une étape supplémentaire (éventuellement évidente) consiste à devenir l'utilisateur postgres, sinon vous risquez de recevoir des erreurs concernant des rôles inexistants.
ou
la source
sortie
la source