답변:
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"
마지막으로, 후속 답변에서 지적했듯이 백그라운드에서 실행되는 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 메일 링리스트 에서 복사되었습니다 .
일반적으로 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;
참조 : https://www.postgresql.org/message-id/1121195544.8208.242.camel@state.g2switchworks.com
psql -c '\du'