PostgreSQLユーザーアカウントを一覧表示するコマンド?

PostgreSQLユーザーアカウントを一覧表示するコマンド?

createuser&コマンドがありますdropuser

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

ユーザーアカウントを一覧表示する適切な方法はありますか?

これら2つのコマンドを使用するには、ユーザーが呼び出す必要があるかどうか、psql使用状況を知る必要はありません。

答え1

シェルを使用psqlし、次の操作を行います。

\deu[+] [PATTERN]たとえば、

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

すべてのユーザーの場合:

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

別の例はMySQLです。次のようにできます。

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

答え2

出力をユーザー名に限定するには、psqlシェルまたはローカルシェル/ターミナルで次の操作を行います。

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

そして、以前の答えで指摘したように、クイックメソッドは次のような3つの列を表示します。ユーザー名役割属性のリスト会員役割グループ。

psql -c "\du"

最後に、後続の回答で述べたように、PostgreSQLコマンドはバックグラウンドで実行され、以下を呼び出してこれらの\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;

(\du を入力したときに psql が背後で行うこと)

最後の部分は次のとおりです。PostgreSQLメーリングリスト

答え3

もっと簡単な答えが欲しいなら...

psql内で:

\du

ターミナルから:

psql -c '\du'

これは私がこれを覚えるのに役立ちます。Dよく使われるD何かを説明し、あなたあるあなたジャズ。

答え4

SQLソリューションは通常、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;

引用:https://www.postgresql.org/message-id/[Eメール保護]

関連情報