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

20.1. 그만큼pg_hba.conf파일

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

일반 형식pg_hba.conf파일은 한 줄 당 레코드 세트입니다. 빈 줄은 무시됩니다. 이후의 텍스트와 마찬가지로#댓글 문자. 레코드는 라인에서 계속 될 수 없습니다.all또는복제) 단어가 특별한 의미를 잃게 만들고 데이터베이스, 토토 베이 또는 해당 이름의 호스트와 일치합니다.

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

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

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

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

Local

이 레코드는 Unix-Domain 소켓을 사용한 연결 시도와 일치합니다. 이 유형에 대한 기록이 없으면 유닉스 도메인 소켓 연결이 허용되지 않습니다.

host

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

Note

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

hostssl

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

이 옵션을 사용하려면 서버를 구축해야합니다.SSL지원. 뿐만 아니라,SSL를 설정하여 활성화해야합니다SSL구성 매개 변수 (참조섹션 18.9자세한 내용은). 그렇지 않으면hostssl연결이 일치 할 수 없다는 경고를 기록하는 것을 제외하고 기록은 무시됩니다.

hostnossl

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

데이터베이스

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

토토 베이

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

주소

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

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

이 방법으로 지정된 IPv4 주소 범위의 일반적인 예는172.20.143.89/32단일 호스트의 경우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을 사용하십시오.

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

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

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

dot (로 시작하는 호스트 이름 사양.)는 실제 호스트 이름의 접미사와 일치합니다. 그래서.example.com일치.example.com(하지만example.com).

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

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

Note

토토 베이는 때때로 클라이언트 IP 주소의 역방향 조회를 포함하여 두 가지 이름 해상도와 함께 호스트 이름이 왜 복잡한 방식으로 처리되는지 궁금합니다. 클라이언트의 역 DNS 항목이 설정되지 않았거나 바람직하지 않은 호스트 이름을 생산하는 경우 기능의 사용을 복잡하게 만듭니다.pg_hba.conf모든 연결 시도 중. 많은 이름이 나열되면 상당히 느릴 수 있습니다.

또한 접미사 일치 기능을 구현하려면 역방향 조회가 필요합니다. 실제 클라이언트 호스트 이름을 패턴과 일치시키기 위해서는 알 수 있으므로.

이 동작은 Apache HTTP 서버 및 TCP 포장지와 같은 호스트 이름 기반 액세스 제어의 다른 인기있는 구현과 일치합니다.

ip-address
IP 마스크

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

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

Auth-Method

연결 이이 레코드와 일치 할 때 사용할 인증 방법을 지정합니다. 가능한 선택은 여기에 요약되어 있습니다.섹션 20.3. 모든 옵션은 소문자 및 처리 된 사례가 민감하게 이루어 지므로와 같은 약어조차도ldap소문자로 지정해야합니다.

신뢰

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

거부

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

Scram-Sha-256

SCRAM-SHA-256 인증을 수행하여 토토 베이의 비밀번호를 확인하십시오. 보다섹션 20.3.2자세한 내용.

MD5

Scram-SHA-256 또는 MD5 인증을 수행하여 토토 베이의 비밀번호를 확인하십시오. 보다섹션 20.3.2자세한 내용.

암호

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

GSS

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

SSPI

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

ID

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

피어

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

ldap

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

반경

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

cert

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

PAM

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

BSD

운영 체제가 제공하는 BSD 인증 서비스를 사용하여 인증. 보다섹션 20.3.11자세한 내용.

Auth-options

이후Auth-Method필드, 양식의 필드가있을 수 있습니다이름=value인증 방법에 대한 옵션을 지정합니다. 어떤 인증 방법이 아래에 표시되는지에 대한 세부 정보.

아래에 나열된 메소드 별 옵션 외에도 하나의 메소드 독립적 인증 옵션이 있습니다.ClientCert.hostssl레코드. 로 설정된 경우1,이 옵션은 클라이언트가 인증 방법의 다른 요구 사항 외에도 유효한 (신뢰할 수있는) SSL 인증서를 제시해야합니다.

파일 포함@구성은 이름 목록으로 읽히고, 공백 또는 쉼표로 분리 할 수 ​​있습니다. 댓글은에 의해 소개됩니다.#, 똑같이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) 파일을 다시 읽게하려면

Note

앞의 진술은 Microsoft Windows에서 사실이 아닙니다.pg_hba.conf파일은 후속 새 연결에 의해 즉시 적용됩니다.

시스템보기PG_HBA_FILE_RULES사전 테스트 변경에 도움이 될 수 있습니다pg_hba.conf파일 또는 파일로드에 원하는 효과가없는 경우 문제를 진단합니다. 널이없는 관점에서 줄오류필드는 파일의 해당 줄에 문제를 나타냅니다.

특정 데이터베이스에 연결하려면 토토 베이는를 전달할뿐만 아니라pg_hba.conf수표이지만가 있어야합니다.Connect데이터베이스의 권한. 어떤 데이터베이스를 연결할 수 있는지 제한하려면 일반적으로 부여/취소를 통해이를 제어하는 ​​것이 더 쉽습니다Connect규칙을 입력하는 것보다pg_hba.conf출품작.

일부 예pg_hba.conf항목이 표시됩니다예 20.1. 다른 인증 방법에 대한 자세한 내용은 다음 섹션을 참조하십시오.

예 20.1. 예pg_hba.conf항목

# 로컬 시스템의 모든 토토 베이가 모든 데이터베이스에 연결하도록 허용합니다.