이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다젠 토토 PostgreSQL : 문서 : 17 : 20.1. pg_hba.conf 토토 캔버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

19.1. 그만큼pg_hba.conf토토 캔

클라이언트 인증은 구성 토토 캔에 의해 제어됩니다. 전통적으로 명명 된PG_HBA.conf그리고 데이터베이스에 저장되어 있습니다 클러스터의 데이터 디렉토리. (HBA호스트 기반 인증을 나타냅니다.) 기본값PG_HBA.conf데이터가 설치 될 때 토토 캔이 설치됩니다 디렉토리는에 의해 초기화됩니다.initdb. 그것 인증 구성 토토 캔을 배치 할 수 있습니다 그러나 다른 곳에서는; 참조hba_file구성 매개 변수.

일반 형식pg_hba.conf토토 캔은 1 인당 레코드 세트입니다 선. 빈 줄은 무시됩니다. 이후의 텍스트와 마찬가지로#댓글 문자. 기록은 될 수 없습니다 라인을 가로 질러 계속되었습니다. 레코드는 여러 분야로 구성됩니다. 공백 및/또는 탭으로 분리됩니다. 필드에는 포함 할 수 있습니다 필드 값이 인용되는 경우 공백. 하나를 인용합니다 데이터베이스, 토토 캔 또는 주소 필드의 키워드 (예 :all또는복제) MATE 이 단어는 특별한 성격을 잃고 데이터베이스와 일치합니다. 토토 캔 또는 그 이름을 가진 호스트.

각 레코드는 연결 유형, 클라이언트 IP 주소를 지정합니다. 범위 (연결 유형과 관련된 경우), 데이터베이스 이름, 토토 캔 이름 및 사용할 인증 방법 이 매개 변수와 일치하는 연결. a.의 첫 번째 레코드 연결 유형, 클라이언트 주소, 요청 된 데이터베이스 및 일치합니다 토토 캔 이름은 인증을 수행하는 데 사용됩니다. 없음"낙상"또는"백업": 한 레코드가 선택된 경우 인증 실패, 후속 ​​레코드는 고려되지 않습니다. 만약에 레코드 일치가없고 액세스가 거부됩니다.

레코드는 7 가지 형식 중 하나를 가질 수 있습니다

Local데이터베이스  토토 캔  Auth-Method[Auth-options]
주인데이터베이스  토토 캔  주소  Auth-Method[Auth-options]
호스트데이터베이스  토토 캔  주소  Auth-Method[Auth-options]
hostnossl데이터베이스  토토 캔  주소  Auth-Method[Auth-options]
주인데이터베이스  토토 캔  ip-address  IP 마스크  Auth-Method[Auth-options]
호스트데이터베이스  토토 캔  ip-address  IP 마스크  Auth-Method[Auth-options]
hostnossl데이터베이스  토토 캔  ip-address  IP 마스크  Auth-Method[Auth-options]

필드의 의미는 다음과 같습니다.

Local

이 레코드는 연결 시도와 일치합니다 유닉스 도메인 소켓. 이 유형의 기록이 없으면 유닉스 도메인 소켓 연결은 허용되지 않습니다.

호스트

이 레코드는 사용한 연결 시도와 일치합니다 TCP/IP.host레코드 일치 중 하나SSL또는 비SSL연결 시도.

참고 :원격 TCP/IP 연결 서버가 an으로 시작되지 않는 한 가능합니다 에 적합한 가치Listen_Addresses구성 매개 변수는 기본 동작이므로 로컬에서만 TCP/IP 연결을 듣습니다 루프백 주소LocalHost.

hostssl

이 레코드는 사용한 연결 시도와 일치합니다 TCP/IP이지만 연결이 이루어질 때만SSL암호화.

이 옵션을 사용하려면 서버를 구축해야합니다.SSL지원. 뿐만 아니라,SSL를 설정하여 서버 시작 시간에 활성화SSL구성 매개 변수 (참조PostgreSQL : 문서자세한 내용은).

hostnossl

이 레코드 유형은 반대 동작이입니다.hostssl; 연결 시도에만 일치합니다 사용하지 않는 TCP/IP를 통해 제작SSL.

데이터베이스

이 레코드가 일치하는 데이터베이스 이름을 지정합니다. 값all이를 지정합니다 모든 데이터베이스와 일치합니다. 값Sameuser레코드가 일치하도록 지정합니다 요청 된 데이터베이스가 요청 된 토토 캔. 값Samerole요청 된 토토 캔가 요청 된 데이터베이스와 동일한 이름의 역할. (SameGroup는 더 이상 사용되지 않지만 여전히 받아 들여진 철자Samerole.) 값복제레코드를 지정합니다 복제 연결이 요청되면 일치합니다 (참고 복제 연결은 특정을 지정하지 않습니다 데이터 베이스). 그렇지 않으면 이것은 특정 이름입니다PostgreSQL데이터베이스. 여러 데이터베이스 이름을 분리하여 제공 할 수 있습니다 쉼표와 함께. 데이터베이스 이름을 포함하는 별도의 토토 캔은 할 수 있습니다 토토 캔 이름을 이전에 지정해야합니다.@.

user

이 레코드가 어떤 데이터베이스 토토 캔 이름을 지정합니다 성냥. 값all지정 모든 토토 캔와 일치합니다. 그렇지 않으면 이것은 하나입니다 특정 데이터베이스 토토 캔의 이름 또는 이전 그룹 이름 에 의해+. (아니오가 없다는 것을 기억하십시오 토토 캔와 그룹의 실제 구별postgresql; 에이+마크는 정말 의미"직접 또는 직접적인 역할과 일치하십시오 간접적 으로이 역할의 구성원 "없이+Mark는 그와 일치합니다 특정 역할.) 여러 토토 캔 이름을 제공 할 수 있습니다 쉼표로 분리. 포함 된 별도의 토토 캔 토토 캔 이름은의 토토 캔 이름 앞에 지정할 수 있습니다.@.

주소

클라이언트 머신 주소를 지정합니다 기록 경기. 이 필드는 호스트 이름을 포함 할 수 있으며 IP 주소 범위 또는 특수 키워드 중 하나 아래 언급.

IP 주소 범위는 표준 숫자를 사용하여 지정됩니다 범위의 시작 주소에 대한 표기법, 슬래시 (/) 및 ACIDR마스크 길이. 마스크 길이 클라이언트 IP의 고차 비트 수를 나타냅니다. 일치 해야하는 주소. 이것의 오른쪽에 비트 주어진 IP 주소에서 0이됩니다. 아무것도 없어야합니다 IP 주소 사이의 공백,/및 CIDR 마스크 길이.

IPv4 주소 범위의 일반적인 예가이를 지정했습니다 방법은172.20.143.89/32a 단일 호스트, 또는172.20.143.0/24소규모 네트워크 또는10.6.0.0/16더 큰 것을 위해. IPv6 주소 범위는::1/128단일 호스트의 경우 (이 경우 IPv6 루프백 주소) 또는Fe80 :: 7A31 : C1FF : 0000 : 0000/96작은 회로망.0.0.0.0/0모든 것을 나타냅니다 IPv4 주소 및::0/0모든 IPv6 주소를 나타냅니다. 단일 호스트를 지정하려면 IPv4의 경우 32의 마스크 길이 또는 IPv6의 경우 128을 사용하십시오. a 네트워크 주소, 후행 제로를 생략하지 마십시오.

IPv4 형식으로 제공되는 항목은 IPv4 만 일치합니다. 연결 및 IPv6 형식으로 제공되는 항목이 일치합니다. 대표 주소가있는 경우에도 IPv6 연결 만 IPv4-in-IPV6 범위에서. IPv6 형식의 항목 시스템의 C 라이브러리에 IPv6 주소 지원.

당신도 쓸 수 있습니다all일치합니다 모든 IP 주소,Samehost일치합니다 서버의 자체 IP 주소 또는Samenet모든 서브넷의 주소와 일치합니다 서버가 직접 연결되어 있습니다.

호스트 이름이 지정된 경우 (IP가 아닌 모든 것 주소 범위 또는 특수 키 단어는 호스트로 취급됩니다. 이름), 그 이름은 반대의 결과와 비교됩니다. 클라이언트의 IP 주소의 이름 해상도 (예 : 리버스 DNS 조회, DNS가 사용되는 경우). 호스트 이름 비교가 그렇습니다 무감각합니다. 일치가 있으면 앞으로 이름이 있습니다 해상도 (예 : 전방 DNS 조회)에서 수행됩니다 호스트 이름이 해결되는 주소 여부를 확인합니다. 고객의 IP 주소와 같습니다. 두 방향이라면 일치하면 항목이 일치하는 것으로 간주됩니다. (호스트 에서 사용되는 이름pg_hba.conf의 주소 간 해상도가되어야합니다 클라이언트의 IP 주소가 반환됩니다. 그렇지 않으면 줄은 그렇지 않습니다 일치합니다. 일부 호스트 이름 데이터베이스에서는 IP를 연관시킬 수 있습니다 여러 호스트 이름이지만 운영 체제가있는 주소 IP를 해결하도록 요청하면 호스트 이름 하나만 반환합니다. 주소.)

점으로 시작하는 호스트 이름 사양 (.)는 실제의 접미사와 일치합니다 호스트 이름. 그래서.example.com성냥foo.example.com(하지만 그렇지 않습니다 단지example.com).

호스트 이름이 지정된 경우PG_HBA.conf, 그 이름을 확인해야합니다 해상도는 합리적으로 빠릅니다. 유리할 수 있습니다 와 같은 로컬 이름 해상도 캐시 설정NSCD. 또한, 당신은 그것을 활성화하고 싶을 수도 있습니다 구성 매개 변수log_hostname클라이언트의 호스트 이름을 보려면 로그의 IP 주소 대신

이 필드는에만 적용됩니다host, hostsslhostnossl기록.

ip-address
IP 마스크

이 두 필드는 대안으로 사용될 수 있습니다.ip-address/마스크 길이표기법. 마스크 길이를 지정하는 대신 실제 마스크는 별도의 열에 지정됩니다. 예를 들어,255.0.0.0IPv4 CIDR을 나타냅니다 8의 마스크 길이 및255.255.255.255CIDR 마스크를 나타냅니다 32의 길이

이 필드는에만 적용됩니다host, hostsslhostnossl기록.

Auth-Method

a 연결은이 레코드와 일치합니다. 가능한 선택은입니다 여기에 요약되었습니다. 세부 사항은섹션 19.3.

신뢰

무조건 연결을 허용합니다. 이 방법 에 연결할 수있는 사람은 누구나 허용합니다PostgreSQL데이터베이스 서버로 로그인PostgreSQL원하는 토토 캔, 비밀번호 나 다른 암호가 필요하지 않습니다 입증. 보다섹션 19.3.1세부.

거부

무조건 연결을 거부하십시오. 이것은 유용한"필터링"예를 들어 그룹의 특정 호스트, 예를 들어거부라인은 특정을 차단할 수 있습니다 연결에서 호스트, 이후 라인은 다음을 허용합니다 연결하려면 특정 네트워크에 남아있는 호스트.

MD5

클라이언트가 MD5 암호화를 제공하도록 요구합니다 인증을위한 비밀번호. 보다섹션 19.3.2자세한 내용.

비밀번호

클라이언트가 암호화되지 않은 것을 공급하도록 요구합니다 인증을위한 비밀번호. 비밀번호이기 때문에 네트워크를 통해 명확한 텍스트로 전송되면 신뢰할 수없는 네트워크에서 사용됩니다. 보다섹션 19.3.2자세한 내용.

gss

GSSAPI를 사용하여 토토 캔를 인증합니다. 이것은 전혀입니다 TCP/IP 연결에 사용할 수 있습니다. 보다섹션 19.3.3자세한 내용.

SSPI

SSPI를 사용하여 토토 캔를 인증합니다. 이것은 전혀입니다 Windows에서 사용할 수 있습니다. 보다섹션 19.3.4세부.

KRB5

Kerberos v5를 사용하여 토토 캔를 인증합니다. 이것은 TCP/IP 연결에만 사용할 수 있습니다. 보다섹션 19.3.5자세한 내용.

ID

운영 체제 토토 캔 이름을 얻습니다 클라이언트에서 ID 서버에 연락하여 클라이언트 요청 된 데이터베이스 토토 캔와 일치하는지 확인하십시오 이름. ID 인증은 TCP/IP에서만 사용할 수 있습니다 사이. 로컬 연결을 위해 지정할 때 피어 인증이 대신 사용됩니다. 보다섹션 19.3.6자세한 내용.

PEER

고객의 운영 체제 토토 캔 이름을 얻습니다 운영 체제에서 요청 된 데이터베이스 토토 캔 이름. 이것은 만 사용할 수 있습니다 로컬 연결을 위해. 보다섹션 19.3.7for 세부.

LDAP

AN을 사용하여 인증LDAP서버. 보다섹션 19.3.8for 세부.

반경

RADIUS 서버를 사용하여 인증. 보다섹션 19.3.9자세한 내용.

cert

SSL 클라이언트 인증서를 사용하여 인증. 보다섹션 19.3.10자세한 내용.

PAM

플러그 가능한 인증을 사용하여 인증 운영이 제공하는 모듈 (PAM) 서비스 체계. 보다섹션 19.3.11세부.

Auth-options

이후Auth-Method필드, 양식의 필드가있을 수 있습니다이름=value인증 방법에 대한 옵션을 지정하십시오. 세부 어떤 옵션이 어떤 인증을 사용할 수 있는지에 대해 방법은 아래에 나타납니다.

토토 캔 포함@구조물입니다 이름의 목록으로 읽고, 어느 쪽로도 분리 할 수 ​​있습니다. 공백 또는 쉼표. 댓글은에 의해 소개됩니다.#와 마찬가지로pg_hba.conf및 중첩@구성이 허용됩니다. 토토 캔 이름이 아니라면 수행원@는 절대적인 경로입니다 참조가 포함 된 디렉토리와 관련이있는 토토 캔.

이후PG_HBA.conf레코드는입니다 각 연결 시도, 순서에 대해 순차적으로 검사했습니다 기록은 중요합니다. 일반적으로 이전 기록에는 있습니다 단단한 연결 일치 매개 변수 및 약한 인증 방법, 나중에 레코드에는 느슨한 일치 매개 변수가 있습니다 더 강력한 인증 방법. 예를 들어, 원할 수도 있습니다 사용하려면신뢰로컬 인증 TCP/IP 연결이지만 원격 TCP/IP에 대한 비밀번호가 필요합니다 사이. 이 경우 레코드를 지정신뢰연결에 대한 인증 127.0.0.1은 암호를 지정하는 레코드 앞에 나타납니다 더 넓은 범위의 허용 클라이언트 IP에 대한 인증 구애.

thepg_hba.conf토토 캔을 읽습니다 시작 및 기본 서버 프로세스가 A를받는 경우Sighup신호. 토토 캔을 편집하는 경우 활성 시스템, 우체국 장에 신호를 보내야합니다 (사용PG_CTL Reload또는Kill -hup) 토토 캔을 다시 읽게하려면

팁 :특정 데이터베이스, 토토 캔에 연결하려면 통과해야 할뿐만 아니라pg_hba.conf수표이지만가 있어야합니다.Connect데이터베이스의 권한. 당신이 그것을 제한하고 싶다면 토토 캔는 어떤 데이터베이스를 연결할 수 있으므로 일반적으로 더 쉽습니다. 부여/취소함으로써 이것을 제어Connect규칙을 넣는 것보다pg_hba.conf항목.

의 일부 예pg_hba.conf항목 에 표시됩니다.예 19-1. 보다 다른 인증에 대한 자세한 내용은 다음 섹션입니다 행동 양식.

예 19-1. 예pg_hba.conf항목

# 로컬 시스템의 모든 토토 캔가 모든 데이터베이스에 연결하도록 허용합니다.
# Unix-Domain 소켓을 사용하는 모든 데이터베이스 토토 캔 이름 (로컬의 기본값
# 연결).
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 신뢰

# 로컬 루프백 TCP/IP 연결을 사용하여 동일합니다.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 127.0.0.1/32 신탁을 모두 호스트하십시오

# 이전 줄과 동일하지만 별도의 Netmask 열을 사용합니다.
틀
# 데이터베이스 유형 토토 캔 IP-Dress IP-MASK 메소드
모든 127.0.0.1 255.255.255.255 신탁을 모두 호스트하십시오

# IPv6과 동일합니다.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 것을 호스트하십시오 :: 1/128 신뢰

# 호스트 이름을 사용하여 동일합니다 (일반적으로 IPv4와 IPv6을 모두 포함합니다).
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 LocalHost 신탁을 모두 호스트하십시오

# IP 주소가있는 호스트의 모든 토토 캔가 192.168.93.x를 연결하도록 허용합니다.
# "postgres"로 # 보고서를 확인하는 동일한 토토 캔 이름과
# 연결 (일반적으로 운영 체제 토토 캔 이름).
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
호스트 Postgres 모든 192.168.93.0/24 ID

# Host 192.168.12.10의 모든 토토 캔가 데이터베이스에 연결하도록 허용합니다.
# "Postgres"토토 캔의 암호가 올바르게 제공되는 경우.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
호스트 Postgres 모든 192.168.12.10/32 MD5

# example.com 도메인의 호스트의 모든 토토 캔가 연결하도록 허용합니다.
# 토토 캔의 암호가 올바르게 제공되는 경우 모든 데이터베이스.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 .example.com MD5를 호스트하십시오

# 앞의 "호스트"라인이없는 경우이 두 줄은
# 192.168.54.1에서 모든 연결을 거부합니다 (그 항목은
# 첫 번째 일치) 그러나 다른 곳에서 Kerberos 5 연결을 허용합니다.
# 인터넷에서.  제로 마스크는 호스트 IP의 비트를 유발하지 않습니다.
# 주소를 고려할 주소는 모든 호스트와 일치합니다.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 192.168.54.1/32 모두 거부하십시오
모든 0.0.0.0/0 KRB5를 모두 호스트하십시오

# 192.168.x.x 토토 캔가 데이터베이스에 연결할 수 있도록 허용합니다.
# 그들은 신원 확인을 통과합니다.  예를 들어 Ident가 토토 캔가 있다고 말하면
# "Bryanh"및 그는 PostgreSQL 토토 캔 "Guest1"으로 연결하도록 요청합니다.
# MAP의 PG_INDENT.CONF 항목이 있으면 연결이 허용됩니다.
# "Bryanh"라는 "Omicron"은 "Guest1"으로 연결할 수 있습니다.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
모든 192.168.0.0/16 모두를 호스트합니다. ID MAP = OMICRON

# 이것이 로컬 연결을위한 유일한 세 줄인 경우
# 로컬 토토 캔가 자신의 데이터베이스 (데이터베이스)에만 연결하도록 허용합니다.
# 데이터베이스 토토 캔 이름과 동일한 이름을 가진) 관리자를 제외하고
# 및 모든 데이터베이스에 연결할 수있는 역할 "지원"멤버.  토토 캔
# $ pgdata/Admins에는 관리자 이름 목록이 포함되어 있습니다.  비밀번호
# 모든 경우에 필요합니다.
틀
# 데이터베이스 토토 캔 주소 방법을 입력합니다
로컬 동일한 사람 모두 MD5
로컬 모든 @admins md5
로컬 all +지원 MD5

# 위의 마지막 두 줄은 한 줄로 결합 할 수 있습니다.
Local All @Admins,+지원 MD5

# 데이터베이스 열은 목록 및 토토 캔 이름도 사용할 수도 있습니다.
로컬 db1, db2,@demodbs all md5