Comandă pentru listarea conturilor de utilizator PostgreSQL?

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

  • de la terminal: psql -c '\du'

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]

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *