2025 년 7 월 17 일 : | 와이즈 토토 18 베타 2 릴리스!
이 문서는 지원되지 않는 버전의 와이즈 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다토토 꽁 머니 : 문서 : 17 : CHAPTER 20. 클라이언트 인증버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

19 장. 와이즈 토토 입증

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

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

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

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

19.1. 그만큼pg_hba.conf파일

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

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

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

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

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

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

Local

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

호스트

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

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

hostssl

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

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

hostnossl

이 레코드 유형은 반대 논리를 가지고 있습니다.hostssl: 연결과 일치합니다 사용하지 않는 TCP/IP에 대한 시도SSL.

데이터베이스

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

사용자

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

CIDR-ADDRESS

클라이언트 시스템 IP 주소 범위를 지정합니다 이 레코드는 일치합니다. IP 주소가 포함되어 있습니다 표준 점선 소수점 표기법 및 CIDR 마스크 길이. (IP 주소는 숫자로만 지정할 수 있습니다 도메인 또는 호스트 이름) 마스크 길이는 다음을 나타냅니다 클라이언트 IP 주소의 고차 비트 수 일치해야합니다. 이것의 오른쪽에 비트는 0에서 0이어야합니다. 주어진 IP 주소. 공백이 없어야합니다 IP 주소 사이에서/, 그리고 CIDR 마스크 길이.

전형적인CIDR-ADDRESSis172.20.143.89/32단일 호스트 또는172.20.143.0/24a 회로망. 단일 호스트를 지정하려면 32의 CIDR 마스크를 사용하십시오. IPv4 또는 IPv6의 경우

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

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

ip-address
IP 마스크

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

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

Authentication-Method

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

신뢰

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

거부

무조건 연결을 거부하십시오. 이것은 유용한"필터링 밖으로"그룹의 특정 호스트.

MD5

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

crypt

와이즈 토토가 a를 공급하도록 요구합니다.crypt ()-암호화 된 비밀번호 입증.MD5IS 7.2 이상의 클라이언트가 선호되었지만 7.2 이전 클라이언트 만 지원crypt. 보다섹션 19.2.2자세한 내용.

비밀번호

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

KRB4

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

KRB5

Kerberos v5를 사용하여 사용자를 인증하십시오. 이것 TCP/IP 연결에만 사용할 수 있습니다. 보다섹션 19.2.3자세한 내용.

ID

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

PAM

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

인증-옵션

이 선택 필드의 의미는 다음과 같습니다 선택한 인증 방법. 세부 사항은 아래에 나타납니다.

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

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

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

의 일부 예PG_HBA.conf항목이 표시됩니다예제 19-1. 다른 것에 대한 자세한 내용은 다음 섹션을 참조하십시오 인증 방법.

예 19-1. 예PG_HBA.conf항목

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

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

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

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

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

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

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

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

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

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