이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 꽁 머니 : 문서 : 17 : CHAPTER 20. 클라이언트 인증버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

19 장. 윈 토토 입증

윈 토토 응용 프로그램이 데이터베이스 서버에 연결하면 어떤지 지정PostgreSQL사용자 이름은 연결하고 싶어합니다. 특정 사용자로서의 유닉스 컴퓨터. SQL 환경 내에서 활성 데이터베이스 사용자 이름은 액세스 권한을 결정합니다 데이터베이스 개체 - 참조PostgreSQL : 문서 : 7.4 : 데이터베이스 토토 결과 및 권한자세한 내용. 따라서 제한해야합니다 어떤 데이터베이스 사용자가 연결할 수 있는지.

윈 토토프로세스입니다 데이터베이스 서버가 윈 토토의 신원을 설정하는 연장별로 윈 토토 응용 프로그램 (또는 윈 토토 애플리케이션을 실행하는 사용자)는 연결할 수 있습니다. 요청 된 사용자 이름으로.

PostgreSQL여러 가지를 제공합니다 다른 클라이언트 윈 토토 방법. 사용 된 방법 윈 토토 특정 클라이언트 연결을 선택할 수 있습니다 (클라이언트) 호스트 주소, 데이터베이스 및 사용자의 기초.

PostgreSQL사용자 이름은입니다 운영 체제의 사용자 이름과 논리적으로 분리 서버가 실행됩니다. 특정 서버의 모든 사용자 인 경우 서버 시스템에도 계정이 있습니다. 운영 체제 사용자와 일치하는 데이터베이스 사용자 이름 지정 이름. 그러나 원격 연결을 수락하는 서버에는 가질 수 있습니다 로컬 운영 체제 계정이없는 많은 데이터베이스 사용자, 그러한 경우 데이터베이스 사이에 연결이 필요하지 않습니다. 사용자 이름 및 OS 사용자 이름.

19.1. 그만큼PG_HBA.conf파일

클라이언트 윈 토토은 파일에 의해 제어됩니다pg_hba.conf데이터 디렉토리의 예를 들어/usr/local/pgsql/data/pg_hba.conf. (HBA호스트 기반을 나타냅니다 윈 토토.) 기본값pg_hba.conf데이터가 설치 될 때 파일이 설치됩니다 디렉토리는에 의해 초기화됩니다.initdb.

일반 형식pg_hba.conf파일은 1 인당 레코드 세트입니다 선. 빈 줄은 무시됩니다. 이후의 텍스트와 마찬가지로#댓글 문자. 기록이 만들어졌습니다 공간 및/또는 탭. 필드 값이있는 경우 필드는 공백을 포함 할 수 있습니다. 인용. 기록에 걸쳐 기록을 계속할 수 없습니다.

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

레코드에 7 개의 형식 중 하나가있을 수 있습니다

Local데이터베이스  사용자  Authentication-Method[윈 토토-옵션]
주인데이터베이스  사용자  ip-address  IP 마스크  Authentication-Method[윈 토토-옵션]
호스트데이터베이스  사용자  ip-address  IP 마스크  Authentication-Method[윈 토토-옵션]
hostnossl데이터베이스  사용자  ip-address  IP 마스크  Authentication-Method[윈 토토-옵션]
주인데이터베이스  사용자  IP-Address/ip-masklen  Authentication-Method[윈 토토-옵션]
호스트데이터베이스  user  ip-address/ip-masklen  Authentication-Method[윈 토토-옵션]
hostnossl데이터베이스  사용자  ip-address/ip-masklen  Authentication-Method[윈 토토-옵션]

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

Local

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

host

이 레코드는 TCP/IP를 사용한 연결 시도와 일치합니다 네트워크. TCP/IP 연결은 비활성화되어 있습니다 서버가로 시작되지 않는 한-i옵션 또는tcpip_socket구성 매개 변수입니다 활성화.

hostssl

이 레코드는 SSL을 사용하여 연결 시도와 일치합니다 TCP/IP.host레코드가 일치합니다 SSL 또는 비 SSL 연결 시도이지만hostssl레코드에는 SSL이 필요합니다 사이.

이 옵션을 사용하려면 서버를 구축해야합니다. SSL 지원이 활성화되어 있습니다. 또한 SSL은해야합니다 활성화 활성화SSL구성 매개 변수 (참조섹션 16.4더 많은 것 정보).

hostnossl

이 레코드는와 유사합니다.hostssl그러나 반대 논리가 있습니다 사용하지 않는 정기적 인 연결 시도 만 일치합니다 SSL.

데이터베이스

이 레코드와 일치하는 데이터베이스를 지정합니다. 그만큼 값all이를 지정합니다 모든 데이터베이스와 일치합니다. 값Sameuser레코드가 일치하도록 지정합니다 요청 된 데이터베이스가 요청 된 사용자. 값Samegroup요청 된 것을 지정합니다 사용자는 요청 된 데이터베이스. 그렇지 않으면 이것은 a의 이름입니다 특정한PostgreSQL데이터베이스. 여러 데이터베이스 이름을 제공 할 수 있습니다 쉼표로 분리. 데이터베이스를 포함하는 파일 이름을 이전에 앞의 이름으로 지정할 수 있습니다.@. 파일은 동일해야합니다 디렉토리로pg_hba.conf.

사용자

지정postgresql이 레코드 사용자 성냥. 값all지정 모든 사용자와 일치합니다. 그렇지 않으면 이것은 이름입니다 특정PostgreSQL사용자. 분리하여 여러 사용자 이름을 제공 할 수 있습니다 쉼표와 함께. 그룹 이름은 지정할 수 있습니다 그룹 이름 이전 앞+. 사용자 이름을 포함하는 파일은 다음과 같이 지정할 수 있습니다 파일 이름 이전 앞@. 파일은와 동일한 디렉토리에 있어야합니다.pg_hba.conf.

ip-address
IP 마스크

이 두 필드에는 IP 주소와 마스크 값이 포함되어 있습니다. 표준 점선 소수점 표기법. (IP 주소 는만 할 수 있습니다 도메인 또는 호스트 이름이 아닌 수치 적으로 지정됩니다.) 함께 클라이언트 머신 IP를 지정합니다 이 레코드가 일치하는 것을 다룹니다. 정확한 논리는입니다 저것

(실제 -ip-addressXORIP-Address-Field) 및IP 마스크 필드

기록이 일치하려면 0이어야합니다.

IPv4 형식으로 제공되는 IP 주소는 IPv6과 일치합니다. 해당 주소가있는 연결 예127.0.0.1와 일치합니다 IPv6 주소:: FFFF : 127.0.0.1. IPv6 형식으로 제공되는 항목은 IPv6 만 일치합니다. 대표 주소가있는 경우에도 연결 IPv4-in-IPV6 범위. IPv6 형식의 항목은 다음과 같습니다 시스템의 C 라이브러리에 IPv6 주소 지원.

이 필드는에만 적용됩니다호스트, hostssl, 그리고hostnossl기록.

IP-MASKLEN

이 필드는 대안으로 사용될 수 있습니다.IP 마스크표기법. 그것은 고차 비트 수를 지정하는 정수 마스크에 설정하십시오. 숫자는 0에서 32 사이 여야합니다 (in IPv4 주소의 경우) 또는 128 ( IPv6 주소) 포함. 0은 모든 주소와 일치합니다 32 (또는 128)는 정확한 호스트 만 일치합니다. 지정되었습니다. 동일한 일치하는 논리가 a 점선IP 마스크.

사이에 공백이 없어야합니다ip-addressand the/또는/및 그만큼IP-MASKLEN또는 파일은 제대로 구문 분석되지 않습니다.

이 필드는에만 적용됩니다.호스트, hostssl, 그리고hostnossl기록.

Authentication-Method

언제 사용할 윈 토토 방법을 지정합니다 이 레코드를 통해 연결. 가능한 선택은입니다 여기에 요약되었습니다. 세부 사항은섹션 19.2.

신뢰

연결은 무조건 허용됩니다. 이것 메소드는에 연결할 수있는 사람을 허용합니다.PostgreSQL로그인 할 데이터베이스 서버PostgreSQL원하는 사용자, 암호가 필요하지 않습니다. 보다섹션 19.2.1자세한 내용.

거부

연결은 무조건 거부됩니다. 이것 에 유용합니다."필터링 밖으로"그룹의 특정 호스트.

MD5

클라이언트가 암호화 된 MD5를 제공하도록 요구합니다 윈 토토을위한 비밀번호. 이것은 유일한 것입니다 암호화 된 암호를 저장할 수있는 방법 안에PG_SHADOW. 보다섹션 19.2.2자세한 내용.

crypt

처럼MD5방법이지만 오래된 사용crypt ()7.2 이전 고객에게 필요한 암호화.MD57.2에 선호됩니다 그리고 나중에 고객. 보다섹션 19.2.2자세한 내용.

비밀번호

동일MD5비밀번호는 네트워크를 통해 명확한 텍스트로 전송됩니다. 이것은 신뢰할 수없는 네트워크에서 사용해서는 안됩니다. 보다섹션 19.2.2자세한 내용.

KRB4

Kerberos V4는 사용자를 윈 토토하는 데 사용됩니다. 이것은 TCP/IP 연결에만 사용할 수 있습니다. 보다섹션 19.2.3자세한 내용.

KRB5

Kerberos v5는 사용자를 윈 토토하는 데 사용됩니다. 이것은 TCP/IP 연결에만 사용할 수 있습니다. 보다섹션 19.2.3자세한 내용.

ID

운영 체제 사용자 이름을 얻습니다 클라이언트 (TCP/IP 연결 용 로컬 연결을 위해 클라이언트의 ID 서버 운영 체제에서 가져 와서 확인) 및 확인 사용자가 요청 된대로 연결할 수있는 경우 이후에 지정된 맵을 컨설팅하여 데이터베이스 사용자 그만큼ID키 단어.

지도를 사용하는 경우Sameuser, 사용자 이름은입니다 동일해야합니다. 그렇지 않다면지도 이름은입니다 파일에서 찾아 보았pg_ident.conf같은 디렉토리에서 처럼pg_hba.conf. 그만큼 해당 파일에 an이 포함되어 있으면 연결이 허용됩니다 운영 시스템과 함께이지도 이름의 항목 사용자 이름 및 요청PostgreSQL사용자 이름.

로컬 연결의 경우, 이것은 작동합니다 유닉스 도메인 소켓을 지원하는 기계 자격 증명 (현재Linux, freebsd, netbsd, OpenBSDBSD/OS).

참조섹션 19.2.4자세한 내용은 아래.

PAM

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

윈 토토-옵션

이 선택 필드의 의미는 다음과 같습니다 윈 토토 방법을 선택하고 다음에 설명되어 있습니다 부분.

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

중요 :슈퍼 사용자가 방해하지 마십시오 액세스template1데이터베이스. 다양한 유틸리티 명령에 액세스해야합니다template1.

PG_HBA.conf파일을 읽습니다 시작 및 기본 서버 프로세스시기 (Postmaster) 수신 aSighup신호. 활성 시스템에서 파일을 편집하면 필요합니다. 신호를 보내려면Postmaster(사용PG_CTL Reload또는kill -hup) 파일을 다시 읽게하려면

a의 예pg_hba.conf파일 에 표시됩니다.예제 19-1. 다른 것에 대한 자세한 내용은 다음 섹션을 참조하십시오 윈 토토 방법.

예 19-1. 예PG_HBA.conf파일

# 로컬 시스템의 모든 사용자가 아래의 데이터베이스에 연결하도록 허용합니다.
# Unix-Domain 소켓을 사용한 모든 사용자 이름 (로컬의 기본값
# 연결).
틀
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
모든 신뢰

# 로컬 루프백 TCP/IP 연결을 사용하여 동일합니다.
틀
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
모든 127.0.0.1 255.255.255.255 신탁을 모두 호스트하십시오     

# 마지막 줄과 동일하지만 CIDR 마스크 사용
틀
# 데이터베이스 유형 사용자 IP-ADDRESS/CIDR-MASK 메소드
모든 127.0.0.1/32 신탁을 모두 호스트하십시오     

# IP 주소가있는 호스트의 모든 사용자가 192.168.93.x를 연결하도록 허용합니다.
# 데이터베이스 "Template1"에
# 연결 (일반적으로 Unix 사용자 이름).
틀 
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
호스트 템플릿 1 모든 192.168.93.0 255.255.255.0 Ident Sameuser

# 마지막 줄과 동일하지만 CIDR 마스크 사용
틀
# 데이터베이스 유형 사용자 IP-ADDRESS/CIDR-MASK 메소드
호스트 템플릿 1 모든 192.168.93.0/24 ID SameUser

# 호스트의 사용자가 192.168.12.10에서 데이터베이스에 연결하도록 허용합니다.
# "Template1"사용자의 암호가 올바르게 제공되는 경우.
틀 
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
호스트 템플릿 1 모든 192.168.12.10 255.255.255.255 MD5

# 앞의 "호스트"라인이없는 경우이 두 줄은
# 192.168.54.1에서 모든 연결을 거부합니다 (그 항목은
# 먼저 일치) 그러나 다른 곳에서 Kerberos v 연결 허용
# 인터넷에서.  제로 마스크는 호스트 IP의 비트가 없음을 의미합니다.
# 주소는 모든 호스트와 일치하도록 고려됩니다.
틀 
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
모든 192.168.54.1 255.255.255.255 모든 호스트 거부
모두 0.0.0.0 0.0.0.0 KRB5를 모두 호스트하십시오

# 192.168.x.x 사용자가 데이터베이스에 연결할 수 있도록 허용합니다.
# 그들은 신원 확인을 통과합니다.  예를 들어 Ident가 사용자가 있다고 말하면
# "Bryanh"및 그는 PostgreSQL 사용자 "Guest1"으로 연결하도록 요청합니다.
# MAP의 PG_INDENT.CONF 항목이 있으면 연결이 허용됩니다.
# "Bryanh"라는 "Omicron"은 "Guest1"으로 연결할 수 있습니다.
틀
# 데이터베이스 유형 사용자 IP-Dress IP-MASK 메소드
모든 192.168.0.0 255.255.0.0 ID ID OMICRON을 모두 호스트하십시오

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

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

# 데이터베이스 열은 목록 및 파일 이름을 사용할 수 있지만 그룹은 아닙니다.
로컬 db1, db2,@demodbs all md5