PostgreSQL | PostgreSQL 설정 파일 | pg_ident.conf 파일 설정 방법
pg_ident.conf 파일은 클라이언트의 인증 방식으로 Ident 인증을 사용하는 경우, ident 사용자 이름을 PostgreSQL의 역할 이름에 매핑하는데 사용하는 파일이다. 여기에서는 pg_ident.conf 파일의 설정 방법에 대해 설명한다.
pg_ident.conf 파일 위치
pg_ident.conf는 postgresql.conf와 마찬가지로 기본적으로 PostgreSQL을 설치한 data 디렉터리에 저장되어 있다.
C:\Program Files\PostgreSQL\12\data>dir
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: XXXX-XXXX
C:\Program Files\PostgreSQL\12\data 디렉터리
2020-07-08 오전 12:00 <DIR> .
2020-07-08 오전 12:00 <DIR> ..
2020-07-08 오전 12:28 <DIR> base
2020-07-08 오전 12:00 45 current_logfiles
2020-07-08 오전 12:20 <DIR> global
2020-07-08 오전 12:00 <DIR> log
2020-03-10 오전 12:24 <DIR> pg_commit_ts
2020-03-10 오전 12:24 <DIR> pg_dynshmem
2020-03-10 오전 12:24 4,156 pg_hba.conf
2020-03-10 오전 12:24 1,678 pg_ident.conf <------------- 여기 저장되어 있다.
2020-07-08 오전 12:38 <DIR> pg_logical
2020-03-10 오전 12:24 <DIR> pg_multixact
2020-07-07 오후 11:20 <DIR> pg_notify
2020-03-10 오전 12:24 <DIR> pg_replslot
2020-03-10 오전 12:24 <DIR> pg_serial
2020-03-10 오전 12:24 <DIR> pg_snapshots
2020-07-07 오후 11:20 <DIR> pg_stat
2020-07-08 오후 11:35 <DIR> pg_stat_tmp
2020-03-10 오전 12:24 <DIR> pg_subtrans
2020-03-10 오전 12:24 <DIR> pg_tblspc
2020-03-10 오전 12:24 <DIR> pg_twophase
2020-03-10 오전 12:24 3 PG_VERSION
2020-03-10 오전 12:24 <DIR> pg_wal
2020-03-10 오전 12:24 <DIR> pg_xact
2020-03-10 오전 12:24 90 postgresql.auto.conf
2020-03-10 오전 12:24 27,377 postgresql.conf
2020-07-07 오후 11:20 91 postmaster.opts
2020-07-07 오후 11:20 70 postmaster.pid
8개 파일 33,510 바이트
20개 디렉터리 424,537,530,368 바이트 남음
C:\Program Files\PostgreSQL\12\data>
pg_ident.conf 파일은 텍스트 파일으로 되어 있어, 내용을 확인하거나 편집하려면 텍스트 편집기에서 파일을 열 수 있다.
# PostgreSQL User Name Maps
# =========================
#
# Refer to the PostgreSQL documentation, chapter "Client
# Authentication" for a complete description. A short synopsis
# follows.
#
# This file controls PostgreSQL user name mapping. It maps external
# user names to their corresponding PostgreSQL user names. Records
# are of the form:
#
# MAPNAME SYSTEM-USERNAME PG-USERNAME
#
# (The uppercase quantities must be replaced by actual values.)
#
# MAPNAME is the (otherwise freely chosen) map name that was used in
# pg_hba.conf. SYSTEM-USERNAME is the detected user name of the
# client. PG-USERNAME is the requested PostgreSQL user name. The
# existence of a record specifies that SYSTEM-USERNAME may connect as
# PG-USERNAME.
#
# If SYSTEM-USERNAME starts with a slash (/), it will be treated as a
# regular expression. Optionally this can contain a capture (a
# parenthesized subexpression). The substring matching the capture
# will be substituted for \1 (backslash-one) if present in
# PG-USERNAME.
... 이하 생략 ...
pg_ident.conf 설정
pg_ident.conf 파일의 마지막 부분을 보면 다음과 같은 부분이 있다.
# Put your actual configuration here
# ----------------------------------
# MAPNAME SYSTEM-USERNAME PG-USERNAME
현재는 아무것도 설정이 추가되지 않은 상태이다. 매핑을 추가하는 경우 MAPNAME에 매핑에 대한 임의의 이름을 설정하고 SYSTEM-USERNAME에 ident 사용자 이름, 그리고 PG-USERNAME에 PostgreSQL의 역할 이름을 지정한다. 예를 들어 다음과 같이 작성한다.
# Put your actual configuration here
# ----------------------------------
# MAPNAME SYSTEM-USERNAME PG-USERNAME
mymap kim kc
그리고 “pg_hba.conf 파일의 설정 방법"에 작성된 pg_hba.conf 파일에 다음과 같은 작성한다.
방금 매핑을 추가할 때 지정한 MAPNAME를 지정하고 있다.
이제 ident에서 kim로 인증 된 사용자가 kc로 PostgreSQL에 접속이 허용된다.
단지 내 환경에서 직접 테스트 할 수 없었기 때문에 올바르게 설정되어 있는지 확인할 수 없다.
–
pg_ident.conf 설정 방법에 대해 설명하였다.
최종 수정 : 2020-11-12