Příkaz do seznamu uživatelských účtů PostgreSQL?

Existuje createuser & dropuser příkazy:

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

Existuje odpovídající způsob, jak vypsat uživatelské účty?

Tyto dva příkazy ne požadovat, aby uživatel vyvolal psql ani nerozuměl podrobnostem jeho použití.

Odpovědět

Použijte psql prostředí a:

\deu[+] [PATTERN] například:

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

A pro všechny uživatele:

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

Také jako MySQL můžete:

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

Komentáře

  • z terminálu: psql -c '\du'

Odpověď

Chcete-li omezit výstup pouze na uživatelské jméno, jednoduše proveďte následující kroky z psql shell nebo z místního shellu / terminálu jako

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

Zatímco rychlé m ethod, jak bylo uvedeno v předchozí odpovědi, zobrazuje 3 sloupce; včetně Uživatelské jméno , Seznam atributů rolí a Člen skupiny rolí.

psql -c "\du" 

Nakonec, jak bylo uvedeno v následující odpovědi, příkazy PostgreSQL spuštěné na pozadí příkazu \du zobrazují tyto“ výchozí „sloupce voláním:

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 dělá v zákulisí při psaní \ du)

Poslední část byla zkopírována ze poštovního seznamu PostgreSQL .

Odpověď

Pro jednodušší odpověď …

Zevnitř psql:

\du 

Z terminálu:

psql -c "\du" 

Pomáhá mi zapamatovat si, že d se často používá k d něco objednat a u je pro u sers.

Odpověď

Řešení SQL, které obvykle provádí 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]

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *