Kommando for å liste PostgreSQL brukerkontoer?

Det er createuser & dropuser kommandoer:

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

Finnes det en tilsvarende måte å liste brukerkontoer på?

Disse to kommandoene gjør ikke kreve at brukeren påkaller psql og heller ikke forstår detaljer om bruk.

Svar

Bruk psql skallet og:

\deu[+] [PATTERN] slik som:

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

Og for alle brukere:

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

Også som MySQL kan du gjøre:

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

Kommentarer

  • fra terminal: psql -c '\du'

Svar

For å begrense utdataene til bare brukernavnet, gjør du bare enten fra psql skall eller fra det lokale skallet / terminalen som

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

Mens den raske m etoden, som påpekt i et forrige svar, viser 3 kolonner; inkludert Brukernavn , Liste over rolleattributter , og Medlem av rollegruppe (r).

psql -c "\du" 

Til slutt, som påpekt i et påfølgende svar, viser PostgreSQL-kommandoene i bakgrunnen for \du -kommandoen de» standard «-kolonnene ved å ringe:

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; 

(hva psql gjør bak kulissene når du skriver \ du)

Den siste delen ble kopiert fra PostgreSQL-postliste .

Svar

For et enklere svar …

Fra psql:

\du 

Fra terminalen:

psql -c "\du" 

Det hjelper meg å huske at d brukes ofte til d eskribere noe og u u sers.

Svar

SQL-løsning som vanligvis gjøres 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]

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *