Comando para listar contas de usuário do PostgreSQL?

Existem createuser & dropuser comandos:

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

Existe uma maneira correspondente de listar as contas de usuário?

Esses dois comandos não exigem que o usuário invoque psql nem entenda os detalhes de seu uso.

Resposta

Use o shell psql e:

\deu[+] [PATTERN] como:

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

E para todos os usuários:

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

Também como o MySQL, você pode fazer:

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

Comentários

  • do terminal: psql -c '\du'

Resposta

Para limitar a saída apenas ao nome de usuário, basta fazer o seguinte em psql shell ou do shell / terminal local como

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

Enquanto o m rápido o método, conforme apontado na resposta anterior, apresenta 3 colunas; incluindo Nome de usuário , Lista de Atributos de Funções e Membro de grupo (s) de função.

psql -c "\du" 

Finalmente, conforme apontado em uma resposta subsequente, os comandos PostgreSQL são executados em segundo plano para o comando \du para mostrar essas colunas” padrão “chamando:

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; 

(o que o psql faz nos bastidores quando você digita \ du)

A última parte foi copiada da Lista de discussão PostgreSQL .

Resposta

Para uma resposta mais simples …

De dentro do psql:

\du 

Do terminal:

psql -c "\du" 

Isso me ajuda a lembrar que d é frequentemente usado para d escrever algo e u é para u sers.

Resposta

Solução SQL que normalmente é feita por 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]

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *