Polecenie do wyświetlenia kont użytkowników PostgreSQL?

Istnieją createuser & dropuser polecenia:

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

Czy istnieje odpowiedni sposób tworzenia listy kont użytkowników?

Te dwa polecenia nie wymagaj od użytkownika wywołania psql ani zrozumienia szczegółów jego używania.

Odpowiedź

Użyj powłoki psql i:

\deu[+] [PATTERN], na przykład:

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

A dla wszystkich użytkowników:

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

Podobnie jak MySQL, możesz:

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

Komentarze

  • z terminala: psql -c '\du'

Odpowiedź

Aby ograniczyć dane wyjściowe tylko do nazwy użytkownika, po prostu wykonaj następujące czynności z psql powłoki lub z lokalnej powłoki / terminala jako

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

Podczas gdy szybkie m ethod, jak wskazano w poprzedniej odpowiedzi, wyświetla 3 kolumny; w tym Nazwa użytkownika , Lista atrybutów ról i Członek grup ról.

psql -c "\du" 

Na koniec, jak wskazano w kolejnej odpowiedzi, polecenia PostgreSQL działają w tle dla polecenia \du, aby wyświetlić te„ domyślne ”kolumny, wywołując:

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; 

(co psql robi za kulisami po wpisaniu \ du)

Ostatnia część została skopiowana z listy mailingowej PostgreSQL .

Odpowiedź

Aby uzyskać prostszą odpowiedź …

Z poziomu psql:

\du 

Z terminala:

psql -c "\du" 

Pomaga mi przypomnieć sobie, że d jest często używany do d wpisz coś i u jest dla u sers.

Odpowiedź

Rozwiązanie SQL, które zwykle jest wykonywane przez 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]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *