Există createuser
& :
createuser - define a new PostgreSQL user account dropuser - remove a PostgreSQL user account
Există un mod corespunzător de listare a conturilor de utilizator?
Aceste două comenzi nu solicită utilizatorului să invoce psql
și să nu înțeleagă detalii despre utilizarea acestuia.
Răspunde
Utilizați shell-ul psql
și:
\deu[+] [PATTERN]
cum ar fi:
postgres=# \deu+ List of user mappings Server | User name | FDW Options --------+-----------+------------- (0 rows)
Și pentru toți utilizatorii:
postgres=# \du List of roles Role name | Attributes | Member of ------------+------------------------------------------------+----------- chpert.net | | {} postgres | Superuser, Create role, Create DB, Replication | {}
De asemenea, cum ar fi MySQL, puteți face:
$ psql -c "\du" List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- chpert | | {} postgres | Superuser, Create role, Create DB, Replication | {} test | | {}
Comentarii
Răspuns
Pentru a limita ieșirea doar la numele de utilizator, pur și simplu faceți următoarele fie din psql
shell sau de la shell-ul local / terminal ca
psql -c "SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;"
În timp ce m metoda, așa cum sa subliniat într-un răspuns anterior, afișează 3 coloane; inclusiv Nume utilizator , Lista atributelor de roluri și Membru al grup (e) de roluri.
psql -c "\du"
În cele din urmă, după cum sa subliniat într-un răspuns ulterior, comenzile PostgreSQL rulate în fundal pentru comanda \du
afișează acele coloane” implicite „apelând:
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 face psql în culise când tastați \ du)
Ultima parte a fost copiată din Lista de corespondență PostgreSQL .
Răspuns
Pentru un răspuns mai simplu …
Din psql:
\du
De la terminal:
psql -c "\du"
Mă ajută să îmi amintesc că d este adesea folosit pentru d descrie ceva și u este pentru u sers.
Răspuns
Soluție SQL care este realizată în mod normal de 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'