PostgreSQL 사용자 계정을 나열하는 명령?


88

있다 createuserdropuser명령 :

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

사용자 계정을 나열하는 해당 방법이 있습니까?

이 두 명령은 사용자가 psql이를 사용하는 데 대한 세부 사항 을 호출 하거나 이해 하지 않아도 됩니다.

답변:


121

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      |                                                | {}

22
터미널에서 :psql -c '\du'
Frank Henard

5

출력을 사용자 이름으로 만 제한하려면 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 메일 링리스트 에서 복사되었습니다 .


2

일반적으로 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


2

더 간단한 대답을 위해 ...

psql 내에서 :

\du

터미널에서 :

psql -c '\du'

그것은 나를 기억하는 데 도움이 d는 종종 사용되는 D의 방접원을 그리다 뭔가 및 입니다 U SERS.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.