Commande pour lister les comptes utilisateurs PostgreSQL?

Il y a createuser & dropuser commandes:

createuser - define a new PostgreSQL user account dropuser - remove a PostgreSQL user account 

Existe-t-il un moyen correspondant de lister les comptes utilisateurs?

Ces deux commandes ne demander à lutilisateur dappeler psql ni de comprendre les détails de son utilisation.

Réponse

Utilisez le shell psql et:

\deu[+] [PATTERN] tel que:

postgres=# \deu+ List of user mappings Server | User name | FDW Options --------+-----------+------------- (0 rows) 

Et pour tous les utilisateurs:

postgres=# \du List of roles Role name | Attributes | Member of ------------+------------------------------------------------+----------- chpert.net | | {} postgres | Superuser, Create role, Create DB, Replication | {} 

Aussi comme MySQL, vous pouvez faire:

$ psql -c "\du" List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- chpert | | {} postgres | Superuser, Create role, Create DB, Replication | {} test | | {} 

Commentaires

  • depuis le terminal: psql -c '\du'

Réponse

Pour limiter la sortie au nom dutilisateur uniquement, procédez comme suit à partir de psql shell ou depuis le shell / terminal local comme

psql -c "SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;" 

Alors que le m ethod, comme indiqué dans une réponse précédente, affiche 3 colonnes; y compris Nom dutilisateur , Liste des attributs de rôles et Membre du ou des groupe (s) de rôles.

psql -c "\du" 

Enfin, comme indiqué dans une réponse ultérieure, les commandes PostgreSQL sexécutent en arrière-plan pour la commande \du afficher ces colonnes » default « en appelant:

SELECT u.usename AS "User name", u.usesysid AS "User ID", CASE WHEN u.usesuper AND u.usecreatedb THEN CAST("superuser, create database" AS pg_catalog.text) WHEN u.usesuper THEN CAST("superuser" AS pg_catalog.text) WHEN u.usecreatedb THEN CAST("create database" AS pg_catalog.text) ELSE CAST("" AS pg_catalog.text) END AS "Attributes" FROM pg_catalog.pg_user u ORDER BY 1; 

(ce que psql fait dans les coulisses lorsque vous tapez \ du)

La dernière partie a été copiée de la Liste de diffusion PostgreSQL .

Réponse

Pour une réponse plus simple …

Depuis psql:

\du 

Depuis le terminal:

psql -c "\du" 

Cela maide à me souvenir que d est souvent utilisé pour d escribe quelque chose et u est pour u sers.

Réponse

Solution SQL qui est normalement effectuée par psql \ du:

SELECT u.usename AS "User name", u.usesysid AS "User ID", CASE WHEN u.usesuper AND u.usecreatedb THEN CAST("superuser, create database" AS pg_catalog.text) WHEN u.usesuper THEN CAST("superuser" AS pg_catalog.text) WHEN u.usecreatedb THEN CAST("create database" AS pg_catalog.text) ELSE CAST("" AS pg_catalog.text) END AS "Attributes" FROM pg_catalog.pg_user u ORDER BY 1; 

Ref: https://www.postgresql.org/message-id/[email protected]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *