PostgreSQL | 역할(사용자) ROLE 생성 | 생성된 역할 조회
PostgreSQL로 생성된 역할 목록을 검색하는 방법에 대해 설명한다.
\du 명령 사용
먼저 psql의 메타 명령을 사용하여 역할 목록을 조회하는 방법을 설명하겠다. 다음과 같이 실행한다.
devkuma=# \du
롤 목록
롤 이름 | 속성 | 소속 그룹:
-----------+------------------------------------------------+------------
kimkc | 슈퍼유저 | {}
kuma | | {}
orange | | {}
postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}
superkuma | 롤 만들기, DB 만들기 | {}
devkuma=#
생성된 역할 목록이 조회 되었다. 역할마다 “롤 이름, 속성, 소속 그룹"의 정보가 표시된다.
시스템 카탈로그 pg_roles으로 조회하기
이어 PostgreSQL 시스템 카탈로그의 하나인 pg_roles에서 역할 목록을 얻는 방법이다. pg_roles에는 다음과 같은 열이 있다.
이름 | 형 | 설명 |
---|---|---|
rolname | name | 역할 이름 |
rolsuper | bool | 슈퍼 유저 권한의 유무 |
rolinherit | bool | 멤버 인 롤의 권한을 상속할지 여부 |
rolcreaterole | bool | 역할 만들기 권한의 유무 |
rolcreatedb | bool | 데이터베이스 생성 권한이 있는지 |
rolcanlogin | bool | 로그인을 할 수있는 역할 여부 |
rolreplication | bool | 복제에 대한 역할 여부 |
rolconnlimit | int4 | 최대 동시 연결 수 (-1은 무제한) |
rolpassword | text | 비밀번호 (다만, ********와 같이 표시) |
rolvaliduntil | timestamptz | 암호 만료 (만료되지 않으면 NULL) |
rolbypassrls | bool | 모든 행 단위 보안 정책을 무시할지 여부 |
rolconfig | text[] | 런타임 구성 변수에 대한 역할 별 기본 |
oid | oid | 롤의 ID |
컬럼의 수가 많기에, 예를 들면 pg_roles에서 rolname과 rolsuper과 rolcanlogin 값을 조회해 본다. 다음과 같이 실행한다.
devkuma=# select rolname, rolsuper, rolcanlogin from pg_roles;
rolname | rolsuper | rolcanlogin
---------------------------+----------+-------------
pg_monitor | f | f
pg_read_all_settings | f | f
pg_read_all_stats | f | f
pg_stat_scan_tables | f | f
pg_read_server_files | f | f
pg_write_server_files | f | f
pg_execute_server_program | f | f
pg_signal_backend | f | f
postgres | t | t
kuma | f | t
superkuma | f | t
(11개 행)
devkuma=#
역할 목록이 표시되었다. 이번에는 PostgreSQL 설치시 생성되는 postgres 역할과 나중에 만든 kuma 및 superkuma 역할 외에 pg_
가 붙는 역할이 많이 표시되었다. 이 역할들은 기본 역할들로써 스스로 만든 역할에 일시적으로 권한을 부여하는 경우 등에 이용된다.
기본 역할 이외의 역할 목록을 표시할 경우에는 예를 들어 다음과 같이 실행한다.
devkuma=# select rolname, rolsuper, rolcanlogin
devkuma-# from pg_roles
devkuma-# where rolname not like 'pg_%';
rolname | rolsuper | rolcanlogin
-----------+----------+-------------
postgres | t | t
kuma | f | t
superkuma | f | t
(3개 행)
devkuma=#
–
여기까지 PostgreSQL로 생성된 역할 목록을 검색하는 방법에 대해 알아보았다.
최종 수정 : 2020-11-12