| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 클라이언트 토토 베이 | 위로 | 19장. 클라이언트 인증 | PostgreSQL : 문서 : 9.3 : 토토 사이트 순위 이름 맵 | |
클라이언트 인증은 구성 파일에 의해 제어됩니다. 전통적으로 이름이 지정됨pg_hba.토토그리고 데이터베이스 클러스터의 데이터 디렉토리에 저장됩니다. (HBA호스트 기반을 나타냅니다. 인증.) 기본값pg_hba.토토파일은 다음에 의해 데이터 디렉토리가 초기화될 때 설치됩니다.initdb. 배치하는 것이 가능하다 그러나 인증 구성 파일은 다른 곳에 있습니다. 참조하세요hba_file구성 매개변수.
일반 형식pg_hba.토토파일은 한 줄에 하나씩 있는 레코드 집합입니다. 빈 줄은 무시됩니다. 뒤에 오는 텍스트는 무엇입니까?#댓글 문자. 레코드는 여러 줄에 걸쳐 계속될 수 없습니다. 레코드는 다음과 같이 구성됩니다. 공백 및/또는 탭으로 구분된 필드 수. 필드 필드 값이 큰따옴표로 묶인 경우 공백을 포함할 수 있습니다. 데이터베이스, 토토 또는 주소 필드의 키워드 중 하나 인용 (예:모두또는복제)는 단어의 특수성을 잃게 만듭니다. 문자를 입력하고 데이터베이스, 토토 또는 호스트를 해당 문자와 일치시키면 됩니다. 이름.
각 레코드는 연결 유형, 클라이언트 IP 주소를 지정합니다. 범위(연결 유형과 관련된 경우), 데이터베이스 이름, 토토 이름 및 연결에 사용할 인증 방법 이 매개변수와 일치합니다. 일치하는 첫 번째 레코드 연결 유형, 클라이언트 주소, 요청된 데이터베이스 및 토토 이름 인증을 수행하는 데 사용됩니다. 없습니다"탈락"또는"백업": 하나의 레코드가 선택되고 인증이 실패하면 후속 기록은 고려되지 않습니다. 그렇지 않은 경우 일치 항목을 기록하면 액세스가 거부됩니다.
기록은 7가지 형식 중 하나를 가질 수 있습니다.
로컬데이터베이스 토토 인증 방법 [인증 옵션] 호스트데이터베이스 토토 주소 인증 방법 [인증 옵션] 호스트sl데이터베이스 토토 주소 인증 방법 [인증 옵션] 호스트노슬데이터베이스 토토 주소 인증 방법 [인증 옵션] 호스트데이터베이스 토토 IP-주소 IP-마스크 인증 방법 [인증 옵션] 호스트sl데이터베이스 토토 IP-주소 IP-마스크 인증 방법 [인증 옵션] 호스트노슬데이터베이스 토토 IP-주소 IP-마스크 인증 방법 [인증 옵션]
필드의 의미는 다음과 같습니다:
이 레코드는 Unix 도메인을 사용한 연결 시도와 일치합니다. 소켓. 이 유형의 레코드가 없으면 Unix 도메인 소켓 연결이 허용되지 않습니다.
이 기록은 TCP/IP를 사용하여 이루어진 연결 시도와 일치합니다.호스트기록이 둘 중 하나와 일치함SSL또는 비-SSL연결 시도.
참고:원격 TCP/IP 연결은 불가능합니다 서버가 적절한 값으로 시작되지 않는 한listen_addresses구성 매개변수(기본 동작은 수신하는 것이므로) 로컬 루프백 주소의 TCP/IP 연결에만 해당로컬호스트.
이 기록은 TCP/IP를 사용하여 이루어진 연결 시도와 일치하지만 연결이 이루어진 경우에만SSL암호화.
이 옵션을 사용하려면 서버를 다음으로 구축해야 합니다.SSL지원합니다. 게다가SSL서버에서 활성화되어야 합니다 시작 시간을 설정하여ssl구성 매개변수(참조토토 사이트 순위 PostgreSQL : 문서 : 9.3 : SSL과 TCP/IP 연결을 보호합니다더 보기 정보).
이 레코드 유형은 다음과 반대 동작을 갖습니다.hostssl; 연결 시도만 일치합니다. 사용하지 않는 TCP/IP를 통해SSL.
이 레코드가 일치하는 데이터베이스 이름을 지정합니다. 값전체모두 일치함을 지정합니다. 데이터베이스. 값동일토토지정 요청된 데이터베이스의 이름이 동일한 경우 레코드가 일치하는지 확인 요청한 토토로. 값사메롤요청된 토토가 다음 역할의 구성원이어야 함을 지정합니다. 요청한 데이터베이스와 동일한 이름입니다. (동일그룹더 이상 사용되지 않지만 여전히 허용되는 철자법입니다. 의사메롤.) 수퍼유저는 그렇지 않습니다. 다음 목적을 위해 역할의 구성원으로 간주됩니다.사메롤명시적으로 회원이 아닌 한 직간접적으로 역할을 수행하는 것이 아니라 단순히 역할을 수행하는 것만으로는 충분하지 않습니다. 슈퍼유저. 값복제지정 복제 연결이 요청되면 레코드가 일치하는지 확인 (복제 연결은 특정 항목을 지정하지 않습니다. 데이터베이스). 그렇지 않으면 이는 특정의 이름입니다.PostgreSQL데이터베이스. 여러 데이터베이스 이름 쉼표로 구분하여 제공할 수 있습니다. 별도의 파일 데이터베이스 이름을 포함하는 이름은 파일 앞에 지정하여 지정할 수 있습니다. 이름을@.
이 레코드가 일치하는 데이터베이스 토토 이름을 지정합니다. 는 값모두모두 일치함을 지정합니다. 토토. 그렇지 않은 경우 이는 특정 데이터베이스의 이름입니다. 토토 또는 그룹 이름 앞에+. (토토와 그룹 사이에는 실질적인 구분이 없다는 점을 기억하십시오. 에서PostgreSQL; 에+마크는 정말 의미가 있습니다"아무거나 일치 직간접적으로 이 구성원인 역할 중 역할", a가 없는 이름은+표시는 해당 특정 역할에만 일치합니다.) 이 목적을 위해 슈퍼유저는 다음과 같은 경우에만 역할의 구성원으로 간주됩니다. 명시적으로 직간접적으로 역할의 구성원이며, 슈퍼유저라는 이유만으로 말이죠. 토토 이름은 여러 개일 수 있습니다. 쉼표로 구분하여 제공됩니다. 다음을 포함하는 별도의 파일 토토 이름은 파일 이름 앞에를 붙여 지정할 수 있습니다.@.
이 기록이 있는 클라이언트 시스템 주소를 지정합니다. 일치합니다. 이 필드에는 호스트 이름, IP 주소가 포함될 수 있습니다. 범위 또는 아래에 언급된 특수 키워드 중 하나입니다.
IP 주소 범위는 표준 숫자 표기법을 사용하여 지정됩니다. 범위의 시작 주소에는 슬래시(/) 및CIDR마스크 길이. 마스크 길이는 상위 차수의 수를 나타냅니다. 일치해야 하는 클라이언트 IP 주소의 비트입니다. 오른쪽의 비트 이는 지정된 IP 주소에서 0이어야 합니다. 아무 것도 없어야합니다 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를 나타냅니다. 주소. 단일 호스트를 지정하려면 마스크 길이 32를 사용하세요. IPv6의 경우 IPv4 또는 128입니다. 네트워크 주소에서는 후행을 생략하지 마십시오. 0입니다.
IPv4 형식으로 제공된 항목은 IPv4 연결에만 일치합니다. IPv6 형식으로 제공된 항목은 IPv6 연결에만 일치합니다. 표시된 주소가 IPv4-in-IPv6 범위에 있더라도 마찬가지입니다. 참고 시스템의 C 경우 IPv6 형식의 항목이 거부됩니다. 라이브러리는 IPv6 주소를 지원하지 않습니다.
당신도 쓸 수 있습니다전체모든 IP와 일치 주소,동일호스트다음 중 하나와 일치 서버의 자체 IP 주소 또는사메넷에 서버가 직접 존재하는 모든 서브넷의 주소와 일치 연결되었습니다.
호스트 이름이 지정된 경우(IP 주소가 아닌 모든 것) 범위 또는 특수 키워드는 호스트 이름으로 처리됩니다), 해당 이름 의 역방향 이름 확인 결과와 비교됩니다. 클라이언트의 IP 주소(예: DNS가 사용되는 경우 역방향 DNS 조회) 호스트 이름 비교에서는 대소문자를 구분하지 않습니다. 일치하는 항목이 있으면 정방향 이름 확인(예: 정방향 DNS 조회)은 다음과 같습니다. 호스트 이름에 대해 수행하여 해당 주소가 있는지 확인합니다. 클라이언트의 IP 주소와 동일한 것으로 확인됩니다. 둘 다라면 방향이 일치하면 항목이 일치하는 것으로 간주됩니다. (호스트 사용되는 이름pg_hba.토토해야 한다 클라이언트 IP의 주소 대 이름 확인이 가능한 것이어야 합니다. 주소가 반환됩니다. 그렇지 않으면 행이 일치하지 않습니다. 일부 호스트 이름 데이터베이스를 사용하면 IP 주소를 여러 호스트와 연결할 수 있습니다. 하지만 운영 체제는 다음과 같은 경우 하나의 호스트 이름만 반환합니다. IP 주소 확인을 요청했습니다.)
점으로 시작하는 호스트 이름 지정(.)는 실제 호스트 이름의 접미사와 일치합니다. 그래서.example.com일치할 것임foo.example.com(그러나 단지가 아님example.com).
호스트 이름이 다음에 지정된 경우pg_hba.토토, 그 이름을 확인해야 합니다 해결 속도가 상당히 빠릅니다. 설정하는 것이 유리할 수 있습니다. 다음과 같은 로컬 이름 확인 캐시nscd. 또한 구성 매개변수를 활성화할 수도 있습니다.로그_호스트 이름대신 클라이언트의 호스트 이름을 보려면 로그에 있는 IP 주소의 정보입니다.
이 필드는 다음에만 적용됩니다.호스트, hostssl그리고hostnossl기록.
이 두 필드는 다음 대신 사용할 수 있습니다.IP-주소/마스크 길이표기법. 마스크 길이를 지정하는 대신 실제 마스크는 별도의 열에 지정됩니다. 예를 들어,255.0.0.0는 IPv4 CIDR 마스크 길이 8을 나타냅니다. 그리고255.255.255.255CIDR 마스크를 나타냅니다. 길이는 32입니다.
이 필드는 다음에만 적용됩니다.호스트, hostssl및hostnossl기록.
연결 시 사용할 인증 방법을 지정합니다. 이 기록과 일치합니다. 가능한 선택 사항은 여기에 요약되어 있습니다. 자세한 내용은 다음을 참조하세요.범퍼카 토토 PostgreSQL : 문서 : 9.3 : 인증 방법.
무조건 연결을 허용합니다. 이 방법을 사용하면 누구나 에 연결할 수 있는 것은PostgreSQL데이터베이스 서버로 로그인 가능PostgreSQL필요 없이 원하는 토토 비밀번호나 기타 인증을 위해. 참조섹션 19.3.1자세한 내용은.
무조건 연결을 거부합니다. 이것은 다음과 같은 경우에 유용합니다."필터링 중"다음의 특정 호스트 그룹(예: a거부라인 수 특정 호스트의 연결을 차단하고 이후 라인에서는 허용합니다. 특정 네트워크의 나머지 호스트를 연결합니다.
클라이언트에게 MD5로 암호화된 비밀번호를 제공하도록 요구합니다. 인증. 참조섹션 19.3.2용 세부사항.
클라이언트에게 암호화되지 않은 비밀번호를 제공하도록 요구합니다. 인증. 비밀번호는 일반 텍스트로 전송되므로 네트워크이므로 신뢰할 수 없는 네트워크에서는 사용하면 안 됩니다. 참조섹션 19.3.2용 세부사항.
GSSAPI를 사용하여 토토를 인증하세요. 이 기능은 다음에서만 사용할 수 있습니다. TCP/IP 연결. 참조섹션 19.3.3자세한 내용은.
SSPI를 사용하여 토토를 인증하세요. 이 기능은 다음에서만 사용할 수 있습니다. 윈도우. 참조섹션 19.3.4자세한 내용은.
Kerberos V5를 사용하여 토토를 인증하세요. 이것만 가능해요 TCP/IP 연결의 경우. 참조섹션 19.3.5용 세부사항.
다음을 통해 클라이언트의 운영 체제 토토 이름을 얻습니다. 클라이언트의 ident 서버에 접속하여 일치하는지 확인합니다. 요청된 데이터베이스 토토 이름입니다. 본인인증만 가능 TCP/IP 연결에 사용됩니다. 로컬 연결에 지정된 경우 대신 피어 인증이 사용됩니다. 참조섹션 19.3.6자세한 내용은.
다음에서 클라이언트의 운영 체제 토토 이름을 얻습니다. 운영 체제를 확인하고 요청한 데이터베이스와 일치하는지 확인하세요. 토토 이름. 로컬 연결에만 사용할 수 있습니다. 참조섹션 19.3.7용 세부사항.
다음을 사용하여 인증LDAP서버. 참조섹션 19.3.8자세한 내용은.
RADIUS 서버를 사용하여 인증하세요. 참조섹션 19.3.9자세한 내용은.
SSL 클라이언트 인증서를 사용하여 인증합니다. 참조섹션 19.3.10자세한 내용은.
플러그형 인증 모듈(PAM)을 사용하여 인증 운영체제에서 제공하는 서비스입니다. 참조섹션 19.3.11자세한 내용은.
이후인증 방법필드, 양식의 필드가 있을 수 있습니다.이름=값에 대한 옵션을 지정합니다. 인증 방법. 사용 가능한 옵션에 대한 세부정보 아래에 인증 방법이 나와 있습니다.
다음에 포함된 파일@구조물을 읽었습니다. 공백 또는 공백으로 구분할 수 있는 이름 목록 쉼표. 댓글은 다음으로 소개됩니다.#, 그냥 에서와 같이pg_hba.토토및 중첩@구조가 허용됩니다. 파일명이 아니면 다음@은 절대 경로입니다. 참조를 포함하는 디렉토리에 상대적인 것으로 간주됩니다. 파일.
이후pg_hba.토토기록은 각 연결 시도에 대해 순차적으로 검사되며, 기록이 중요하다. 일반적으로 이전 기록은 빡빡합니다. 연결 일치 매개변수 및 약한 인증 방법, 이후의 레코드에는 더 느슨한 일치 매개변수가 있고 더 강력해집니다. 인증 방법. 예를 들어 다음을 사용하고 싶을 수도 있습니다.신뢰로컬 TCP/IP에 대한 인증 하지만 원격 TCP/IP 연결에는 비밀번호가 필요합니다. 이 경우에는 다음을 지정하는 레코드입니다.신뢰127.0.0.1의 연결에 대한 인증은 더 넓은 범위의 비밀번호 인증을 지정하는 기록 허용된 클라이언트 IP 주소입니다.
그pg_hba.토토파일을 읽은 위치 시작 및 기본 서버 프로세스가 수신될 때SIGHUP신호. 파일을 편집하는 경우 활성 시스템인 경우 포스트마스터에게 신호를 보내야 합니다( 사용).pg_ctl reload또는죽여라 -HUP) 파일을 다시 읽도록 합니다.
팁:특정 데이터베이스에 연결하려면 토토는 다음을 수행해서는 안 됩니다. 만 통과pg_hba.토토확인하지만 가 있어야 합니다.연결다음에 대한 특권 데이터베이스. 어떤 토토가 어떤 토토에 연결할 수 있는지 제한하려는 경우 데이터베이스의 경우 일반적으로 승인/취소를 통해 이를 제어하는 것이 더 쉽습니다.연결규칙을 넣는 것보다 특권pg_hba.토토항목.
다음의 몇 가지 예pg_hba.토토항목 에 표시됩니다.예제 19-1. 참조 다른 인증에 대한 자세한 내용은 다음 섹션을 참조하세요. 방법.
예제 19-1. 예시pg_hba.토토항목
# 로컬 시스템의 모든 토토가 다음을 사용하여 모든 데이터베이스에 연결할 수 있도록 허용합니다. # Unix 도메인 소켓을 사용하는 모든 데이터베이스 토토 이름(로컬의 기본값) # 연결). # # 유형 데이터베이스 토토 주소 방법 로컬 모두 모두 신뢰 # 로컬 루프백 TCP/IP 연결을 사용하는 것과 동일합니다. # # 유형 데이터베이스 토토 주소 방법 모두 호스트 127.0.0.1/32 신뢰 # 이전 줄과 동일하지만 별도의 넷마스크 열을 사용합니다. # # 유형 데이터베이스 토토 IP-주소 IP-마스크 방법 모두 호스트 모두 127.0.0.1 255.255.255.255 신뢰 # IPv6에서도 마찬가지입니다. # # 유형 데이터베이스 토토 주소 방법 모두 호스트::1/128 신뢰 # 호스트 이름을 사용하는 것과 동일합니다(일반적으로 IPv4와 IPv6 모두 포함). # # 유형 데이터베이스 토토 주소 방법 호스트 모두 모두 localhost 신뢰 # IP 주소가 192.168.93.x인 모든 호스트의 모든 토토가 연결하도록 허용합니다. # ident가 보고하는 것과 동일한 토토 이름으로 "postgres" 데이터베이스에 # 연결(일반적으로 운영 체제 토토 이름). # # 유형 데이터베이스 토토 주소 방법 호스트 postgres 모두 192.168.93.0/24 ident # 호스트 192.168.12.10의 모든 토토가 데이터베이스에 연결하도록 허용 # 토토의 비밀번호가 올바르게 제공되면 "postgres"입니다. # # 유형 데이터베이스 토토 주소 방법 호스트 postgres 모두 192.168.12.10/32 md5 # example.com 도메인에 있는 호스트의 모든 토토가 다음에 연결하도록 허용합니다. # 토토의 비밀번호가 올바르게 제공되면 모든 데이터베이스. # # 유형 데이터베이스 토토 주소 방법 모두 모두 호스팅 .example.com md5 # 앞의 "host" 줄이 없으면 이 두 줄은 # 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"로 연결을 요청합니다. # pg_ident.conf에 맵에 대한 항목이 있으면 연결이 허용됩니다. # "bryanh"이라고 표시된 "omicron"은 "guest1"로 연결이 허용됩니다. # # 유형 데이터베이스 토토 주소 방법 모두 호스트 192.168.0.0/16 ident map=omicron # 로컬 연결에 이 세 개의 회선만 있는 경우 # 로컬 토토가 자신의 데이터베이스(데이터베이스)에만 연결하도록 허용합니다. # 데이터베이스 토토 이름과 동일한 이름을 가짐) 관리자 제외 # 및 모든 데이터베이스에 연결할 수 있는 "지원" 역할의 구성원입니다. 파일 # $PGDATA/admins에는 관리자 이름 목록이 포함되어 있습니다. 비밀번호 #은 모든 경우에 필요합니다. # # 유형 데이터베이스 토토 주소 방법 로컬 동일 토토 모두 md5 로컬 모든 @admins md5 로컬 모두 +md5 지원 # 위의 마지막 두 줄은 한 줄로 결합될 수 있습니다. 로컬 모든 @admins,+md5 지원 # 데이터베이스 열에는 목록과 파일 이름도 사용할 수 있습니다. 로컬 db1,db2,@demodbs 모든 md5
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 클라이언트 인증 | 위로 | 토토 이름 맵 |