Befehl zum Auflisten von PostgreSQL-Benutzerkonten?

Es gibt createuser & dropuser Befehle:

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

Gibt es eine entsprechende Möglichkeit, die Benutzerkonten aufzulisten?

Diese beiden Befehle funktionieren nicht Der Benutzer muss psql aufrufen und die Details seiner Verwendung nicht verstehen.

Antwort

Verwenden Sie die Shell psql und:

\deu[+] [PATTERN], z. B.:

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

Und für alle Benutzer:

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

Auch wie bei MySQL können Sie Folgendes tun:

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

Kommentare

  • vom Terminal: psql -c '\du'

Antwort

Um die Ausgabe nur auf den Benutzernamen zu beschränken, gehen Sie einfach wie folgt vor: psql Shell oder von der lokalen Shell / Terminal als

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

Während das schnelle m Die Methode zeigt, wie in einer früheren Antwort ausgeführt, 3 Spalten an. einschließlich Benutzername , Liste der Rollenattribute und Mitglied der Rollengruppe (n).

psql -c "\du" 

Wie in einer nachfolgenden Antwort ausgeführt, werden die PostgreSQL-Befehle im Hintergrund für den Befehl \du ausgeführt und zeigen diese“ Standard „-Spalten durch Aufrufen von:

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; 

(was psql hinter den Kulissen tut, wenn Sie \ du eingeben)

Der letzte Teil wurde aus der PostgreSQL-Mailingliste kopiert.

Antwort

Für eine einfachere Antwort …

Innerhalb von psql:

\du 

Vom Terminal aus:

psql -c "\du" 

Es hilft mir, mich daran zu erinnern, dass d wird häufig für d schreibt etwas und u ist für u sers.

Antwort

SQL-Lösung, die normalerweise von psql \ du ausgeführt wird:

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]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.