Kommando för att lista PostgreSQL användarkonton?

Det finns createuser & dropuser kommandon:

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

Finns det ett motsvarande sätt att lista användarkonton?

Dessa två kommandon fungerar inte kräva att användaren åberopar psql eller förstår detaljer om hur den används.

Svar

Använd skalet psql och:

\deu[+] [PATTERN] som:

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

Och för alla användare:

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

Även som MySQL kan du göra:

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

Kommentarer

  • från terminal: psql -c '\du'

Svar

För att begränsa utdata till endast användarnamnet, gör helt enkelt följande antingen från psql skal eller från det lokala skalet / terminalen som

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

Medan den snabba m etod, som påpekades i ett tidigare svar, visar tre kolumner; inklusive Användarnamn , Lista över rollattribut och Medlem av rollgrupp (er).

psql -c "\du" 

Slutligen, som påpekas i ett efterföljande svar, visas kommandona PostgreSQL i bakgrunden för kommandot \du de” standard ”-kolumnerna genom att ringa:

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; 

(vad psql gör bakom kulisserna när du skriver \ du)

Den sista delen kopierades från PostgreSQL-e-postlistan .

Svar

För ett enklare svar …

Från psql:

\du 

Från terminalen:

psql -c "\du" 

Det hjälper mig att komma ihåg att d används ofta för att d escribe något och u u sers.

Svar

SQL-lösning som normalt görs av 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]

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *