이 문서는 지원되지 않는 버전의 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파일은 한 줄 당 레코드 세트입니다. 빈 줄은 무시됩니다. 이후의 텍스트와 마찬가지로#댓글 문자. 레코드는 라인에서 계속 될 수 없습니다. 레코드는 공백 및/또는 탭으로 분리되는 여러 필드로 구성됩니다. 필드 값이 두 번 인용되는 경우 필드에는 공백이 포함될 수 있습니다. 데이터베이스, 와이즈 토토 또는 주소 필드에서 키워드 중 하나 인용 (예 :all또는복제) 단어가 특별한 의미를 잃게 만들고 데이터베이스, 와이즈 토토 또는 해당 이름의 호스트와 일치합니다.

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

레코드는 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

This record matches connection attempts using Unix-domain sockets. 이 유형에 대한 기록이 없으면 유닉스 도메인 소켓 연결이 허용되지 않습니다.

host

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

참고 :원격 TCP/IP 연결은 서버에 적절한 값으로 시작되지 않으면Listen_Addresses구성 매개 변수, 기본 동작은 로컬 루프백 주소에서만 TCP/IP 연결을 듣는 것이므로LocalHost.

hostssl

이 레코드는 TCP/IP를 사용하여 만든 연결 시도와 일치하지만 연결이 이루어질 때만SSL암호화.

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

hostnossl

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

데이터베이스

이 레코드가 일치하는 데이터베이스 이름을 지정합니다. 값all모든 데이터베이스와 일치하도록 지정합니다. 값Sameuser요청 된 데이터베이스가 요청 된 와이즈 토토와 동일한 이름을 갖는 경우 레코드가 일치하도록 지정합니다. 값Samerole요청 된 와이즈 토토가 요청 된 데이터베이스와 동일한 이름을 가진 역할의 구성원이어야하도록 지정합니다. (SameGroup쓸모 없지만 여전히 허용되는 철자Samerole.) 슈퍼 와이즈 토토는의 목적 상 역할의 구성원으로 간주되지 않습니다.Samerole슈퍼 와이즈 토토가 아니라는 것이 아니라 직간접 적으로 역할의 명시 적 구성원이 아니라면. 값복제복제 연결이 요청 된 경우 레코드가 일치하도록 지정합니다 (복제 연결은 특정 데이터베이스를 지정하지 않습니다). 그렇지 않으면 이것은 특정 이름입니다postgresql데이터베이스. 여러 데이터베이스 이름은 쉼표로 분리하여 제공 할 수 있습니다. 데이터베이스 이름을 포함하는 별도의 파일은 파일 이름이 선행하여 지정할 수 있습니다.@.

와이즈 토토

이 레코드가 일치하는 데이터베이스 와이즈 토토 이름을 지정합니다. 값all모든 와이즈 토토와 일치하도록 지정합니다. 그렇지 않으면 이것은 특정 데이터베이스 와이즈 토토의 이름이거나 그룹 이름이입니다.+. (와이즈 토토와 그룹 사이에 실질적인 차이가 없다는 것을 기억하십시오PostgreSQL; 에이+마크는 정말 의미"이 역할의 직접 또는 간접적으로 구성원 인 역할과 일치"+Mark는 해당 특정 역할 만 일치합니다.)이 목적을 위해, 슈퍼업자는 슈퍼 와이즈 토토가되는 것이 아니라 직간접 적으로 직접 또는 간접적으로 역할의 구성원 인 경우에만 역할의 구성원으로 간주됩니다. 여러 와이즈 토토 이름은 쉼표로 분리하여 제공 할 수 있습니다. 와이즈 토토 이름을 포함하는 별도의 파일은 파일 이름이 선행하여 지정할 수 있습니다.@.

주소

이 레코드가 일치하는 클라이언트 머신 주소 (ES)를 지정합니다. 이 필드는 호스트 이름, IP 주소 범위 또는 아래에 언급 된 특수 키 단어 중 하나를 포함 할 수 있습니다.

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

이 방법으로 지정된 IPv4 주소 범위의 일반적인 예는172.20.143.89/32단일 호스트의 경우172.20.143.0/24소규모 네트워크 또는10.6.0.0/16더 큰 것. An IPv6 address range might look like::1/128단일 호스트 (이 경우 IPv6 루프백 주소) 또는Fe80 :: 7A31 : C1FF : 0000 : 0000/96소규모 네트워크의 경우0.0.0.0/0모든 IPv4 주소를 나타내고::0/0모든 IPv6 주소를 나타냅니다. 단일 호스트를 지정하려면 IPv4의 경우 32의 마스크 길이 또는 IPv6의 경우 128을 사용하십시오. 네트워크 주소에서는 후행 제로를 생략하지 마십시오.

IPv4 형식으로 제공되는 항목은 IPv4 연결 만 일치하며 IPv6 형식으로 제공되는 항목은 IPv4-in-IPV6 범위에 있더라도 IPv6 형식으로 제공되는 항목은 IPv6 연결 만 일치합니다. 시스템의 C 라이브러리에 IPv6 주소를 지원하지 않으면 IPv6 형식의 항목이 거부됩니다.

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

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

dot (로 시작하는 호스트 이름 사양.)는 실제 호스트 이름의 접미사와 일치합니다. 그래서.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.25532의 CIDR 마스크 길이를 나타냅니다.

이 필드는에만 적용됩니다호스트, hostsslhostnossl레코드.

Auth-Method

연결 이이 레코드와 일치 할 때 사용할 인증 방법을 지정합니다. 가능한 선택은 여기에 요약되어 있습니다. 세부 사항은윈 토토 PostgreSQL : 문서 : 9.4 : 인증 방법.

신뢰

무조건 연결을 허용합니다. 이 방법은에 연결할 수있는 모든 사람을 허용합니다.PostgreSQL로그인 할 데이터베이스 서버postgresql비밀번호 나 기타 인증없이 원하는 와이즈 토토. 보다섹션 19.3.1자세한 내용.

거부

무조건 연결을 거부하십시오. 이것은에 유용합니다"필터링"예를 들어 그룹의 특정 호스트, 예를 들어거부라인은 특정 호스트가 연결을 차단할 수 있지만, 이후 줄은 특정 네트워크의 나머지 호스트가 연결할 수 있도록합니다.

MD5

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

암호

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

GSS

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

SSPI

SSPI를 사용하여 와이즈 토토를 인증합니다. 이것은 Windows에서만 사용할 수 있습니다. 보다섹션 19.3.4자세한 내용.

ID

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

피어

운영 체제에서 클라이언트 운영 체제 와이즈 토토 이름을 얻고 요청 된 데이터베이스 와이즈 토토 이름과 일치하는지 확인하십시오. 이것은 로컬 연결에만 사용할 수 있습니다. 보다섹션 19.3.6자세한 내용.

ldap

AN을 사용하여 인증LDAP서버. 보다섹션 19.3.7자세한 내용.

반경

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

cert

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

PAM

운영 체제가 제공하는 PAM (Pluggable Authentication Modules) 서비스를 사용하여 인증. 보다섹션 19.3.10자세한 내용.

인증

이후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, SQL 기능 호출pg_reload_conf ()또는 사용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에서 모든 연결을 거부합니다 (그 항목은
# 먼저 일치하지만 다른 곳에서 GSSAPI 연결을 허용합니다.
# 인터넷에서.  제로 마스크는 호스트 IP의 비트를 유발하지 않습니다.
# 주소를 고려할 주소는 모든 호스트와 일치합니다.
틀
# 데이터베이스 와이즈 토토 주소 방법을 입력합니다
모든 192.168.54.1/32 모두 거부하십시오
모든 0.0.0.0/0 GSS를 모두 호스트하십시오

# 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