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