Vannak createuser
& dropuser
parancsok:
createuser - define a new PostgreSQL user account dropuser - remove a PostgreSQL user account
Van-e megfelelő mód a felhasználói fiókok felsorolására?
Ez a két parancs nem megköveteli a felhasználótól, hogy hívja meg a psql
alkalmazást, és nem érti a használat részleteit.
Válasz
Használja a psql
héjat és:
\deu[+] [PATTERN]
, például:
postgres=# \deu+ List of user mappings Server | User name | FDW Options --------+-----------+------------- (0 rows)
És minden felhasználó számára:
postgres=# \du List of roles Role name | Attributes | Member of ------------+------------------------------------------------+----------- chpert.net | | {} postgres | Superuser, Create role, Create DB, Replication | {}
A MySQL-hez hasonlóan megteheti:
$ psql -c "\du" List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- chpert | | {} postgres | Superuser, Create role, Create DB, Replication | {} test | | {}
Megjegyzések
Válasz
A kimenet csak a felhasználónévre való korlátozásához egyszerűen tegye a következőket: psql
shell vagy a helyi shell / terminálról
psql -c "SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;"
Míg a gyors m az ethod, amint arra egy korábbi válasz rámutatott, 3 oszlopot mutat; beleértve a felhasználónév , Szerepkör-attribútumok listáját és szerepkör (ek) tagja.
psql -c "\du"
Végül, amint arra egy későbbi válasz rámutatott, a háttérben futó PostgreSQL parancsok az \du
parancshoz az” alapértelmezett “oszlopokat mutatják a következő hívással:
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;
(a psql mit csinál a kulisszák mögött, amikor \ du gépel)
Az utolsó részt a PostgreSQL levelezőlistáról másoltuk.
Válasz
Egyszerűbb válaszért …
A psql-en belül:
\du
A terminálról:
psql -c "\du"
Segít emlékezni arra, hogy d gyakran használják d leír valamit, és u u sers.
Válasz
SQL megoldás, amelyet általában a psql \ du végez:
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'