Comando per elencare gli account utente PostgreSQL?

Sono presenti createuser & dropuser comandi:

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

Esiste un modo corrispondente per elencare gli account utente?

Questi due comandi non lo fanno richiedere allutente di invocare psql né di comprendere i dettagli del suo utilizzo.

Risposta

Utilizza la shell psql e:

\deu[+] [PATTERN] come:

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

E per tutti gli utenti:

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

Anche come MySQL, puoi fare:

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

Commenti

  • dal terminale: psql -c '\du'

Risposta

Per limitare loutput solo al nome utente, esegui semplicemente le seguenti operazioni dal psql shell o dalla shell / terminale locale come

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

Mentre il rapido m ethod, come sottolineato in una risposta precedente, mostra 3 colonne; inclusi Nome utente , Elenco di attributi di ruoli e Membro di gruppo / i di ruoli.

psql -c "\du" 

Infine, come sottolineato in una risposta successiva, i comandi PostgreSQL eseguiti in background per il comando \du mostrano quelle colonne” predefinite “chiamando:

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; 

(cosa fa psql dietro le quinte quando digiti \ du)

Lultima parte è stata copiata dalla Mailing List PostgreSQL .

Risposta

Per una risposta più semplice …

Dallinterno di psql:

\du 

Dal terminale:

psql -c "\du" 

Mi aiuta a ricordare che d viene spesso utilizzato per d invia qualcosa e u è per u sers.

Risposta

Soluzione SQL normalmente eseguita da 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]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *