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
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]
psql -c '\du'