createuser
&dropuser
コマンドがあります:
createuser - define a new PostgreSQL user account
dropuser - remove a PostgreSQL user account
ユーザーアカウントを一覧表示する対応する方法はありますか?
これらの2つのコマンドは、ユーザーがpsql
を呼び出す必要がなく、使用方法の詳細も理解していません。
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 | | {}
出力をユーザー名のみに制限するには、psql
シェルまたはローカルシェル/ターミナルから次のように実行するだけです。
psql -c "SELECT u.usename AS "User Name" FROM pg_catalog.pg_user u;"
前の回答で指摘したように、簡単な方法では3つの列が表示されます。 ユーザー名、ロール属性のリスト、役割グループのメンバー。
psql -c "\du"
最後に、後続の回答で指摘されているように、\du
コマンドのバックグラウンドで実行されるPostgreSQLコマンドは、次の呼び出しによってこれらの「デフォルト」列を表示します。
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メーリングリスト からコピーされました。
より簡単な答えのために...
Psql内から:
\du
ターミナルから:
psql -c '\du'
dはしばしばd何かを説明するために使用され、は sersのために使用されることを覚えておくのに役立ちます。
通常、psql\duによって実行されるSQLソリューション:
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;