Database

[PostgreSQL] 사용자 목록 확인

비번변경 2023. 12. 28. 21:09

개요

PostgreSQL에서 사용자 목록과 권한을 확인하는 방법을 정리해 둔다.

 

 

psql 메타 명령어

psql 메타 명령어 \du는 사용자명, 사용자에게 부여된 권한과 소속 그룹 정보를 확인할 수 있다.

\du

 

출력에서 확인할 수 있는 기본 권한(role) 목록은 다음과 같다.

권한 설명
SUPERUSER 데이터베이스에 대한 모든 작업을 허용하는 관리자 권한
CREATEDB 데이터베이스 생성 가능
CREATEROLE 신규 역할 생성 가능
REPLICATION 데이터베이스 복제를 위한 역할. 꽤 높은 권한을 가지고 있어 복제 용도로만 사용하는 것을 권장한다.
BYPASSRLS Row 수준 보안 정책 통과 가능. 테이블 덤프 등의 작업 제한용

 

 

SQL

데이터베이스 사용자에 대한 정보를 저장하는 PG_USER 또는 PG_SHADOW 등을 조회하여 확인할 수 있다.

 SELECT * FROM PG_USER;
 SELECT * fROM PG_SHADOW;
**Query #1**

    SELECT * FROM PG_USER;

| usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd   | valuntil | useconfig |
| ------- | -------- | ----------- | -------- | ------- | ------------ | -------- | -------- | --------- |
| test    | 10       | true        | true     | true    | true         | ******** |          |           |

---
**Query #2**

    SELECT * fROM PG_SHADOW;

| usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig |
| ------- | -------- | ----------- | -------- | ------- | ------------ | ------ | -------- | --------- |
| test    | 10       | true        | true     | true    | true         |        |          |           |

 

두 테이블, 뷰의 컬럼은 아래와 같다. 

컬럼 설명
usename 사용자 이름
usesysid 사용자 ID
usecreatedb 데이터베이스 생성 가능 여부
usesuper superuser 여부
userepl 스트리밍 복제, 시스템 백업 모드 설정 가능 여부
usebypassrls  row 수준 보안 정책 우회 가능 여부
passwd    암호화된 비밀번호 또는 마스킹 처리된 문자열 출력
valuntil
비밀번호 만료일
useconfig  런타임 구성 변수에 대한 세션 기본값

 

 

 

참고 문서

https://postgresql.kr/docs/10/sql-createrole.html

https://www.postgresql.org/docs/current/view-pg-user.html

https://www.postgresql.org/docs/16/view-pg-shadow.html

https://kwomy.tistory.com/9

728x90