Commando om PostgreSQL-gebruikersaccounts weer te geven?

Er zijn createuser & dropuser commandos:

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

Is er een overeenkomstige manier om de gebruikersaccounts weer te geven?

Deze twee commandos zijn niet vereisen dat de gebruiker psql aanroept en de details van het gebruik ervan niet begrijpt.

Antwoord

Gebruik de psql shell en:

\deu[+] [PATTERN] zoals:

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

En voor alle gebruikers:

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

Ook zoals MySQL kunt u doen:

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

Reacties

  • van terminal: psql -c '\du'

Antwoord

Om de uitvoer te beperken tot alleen de gebruikersnaam, doet u eenvoudigweg het volgende via de psql shell of vanuit de lokale shell / terminal als

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

Terwijl de snelle m ethod, zoals aangegeven in een eerder antwoord, geeft 3 kolommen weer; inclusief Gebruikersnaam , Lijst met rolkenmerken , en Lid van rollengroep (en).

psql -c "\du" 

Tot slot, zoals aangegeven in een volgend antwoord, worden de PostgreSQL-commandos op de achtergrond uitgevoerd voor het \du -commando laat die” standaard “kolommen zien door aan te roepen:

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; 

(wat psql doet achter de schermen als je \ du typt)

Het laatste deel is gekopieerd van de PostgreSQL-mailinglijst .

Antwoord

Voor een eenvoudiger antwoord …

Vanuit psql:

\du 

Vanaf de terminal:

psql -c "\du" 

Het helpt me te onthouden dat d wordt vaak gebruikt om d escribe iets en u is voor u sers.

Antwoord

SQL-oplossing die normaal wordt gedaan door 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]

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *