| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| 스포츠 토토 : 문서 : 9.4 : 클라이언트 인증 | 스포츠 토토 : 문서 : 9.4 : 클라이언트 인증 | 19장. 클라이언트 인증 | PostgreSQL : 문서 : 9.4 : 토토 결과 이름 맵 |
클라이언트 인증은 전통적으로 이름이 지정된 구성 파일에 의해 제어됩니다.pg_hba.conf그리고 데이터베이스 클러스터의 데이터 디렉토리에 저장됩니다. (HBA호스트 기반 인증을 나타냅니다.) 기본값pg_hba.conf파일은 다음에 의해 데이터 디렉토리가 초기화될 때 설치됩니다.initdb. 그러나 인증 구성 파일을 다른 곳에 배치할 수도 있습니다. 참조하세요hba_file구성 매개변수.
일반 형식pg_hba.conf파일은 한 줄에 하나씩 있는 레코드 집합입니다. 빈 줄은 무시되며, 다음의 모든 텍스트도 무시됩니다.#댓글 문자. 레코드는 여러 줄에 걸쳐 계속될 수 없습니다. 레코드는 공백 및/또는 탭으로 구분된 여러 필드로 구성됩니다. 필드 값이 큰따옴표로 묶인 경우 필드에 공백이 포함될 수 있습니다. 데이터베이스, 와이즈 토토 또는 주소 필드의 키워드 중 하나 인용(예:모두또는복제)는 단어가 특별한 의미를 잃게 만들고 데이터베이스, 와이즈 토토 또는 호스트를 해당 이름과 일치시킵니다.
각 레코드는 연결 유형, 클라이언트 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.4 : SSL과 TCP/IP 무지개 토토을 보호합니다자세한 내용은).
이 레코드 유형은 다음과 반대 동작을 가집니다.hostssl; 사용하지 않는 TCP/IP를 통한 연결 시도만 일치합니다.SSL.
이 레코드가 일치하는 데이터베이스 이름을 지정합니다. 값전체모든 데이터베이스와 일치함을 지정합니다. 값동일와이즈 토토요청된 데이터베이스의 이름이 요청된 와이즈 토토와 동일한 경우 레코드가 일치하도록 지정합니다. 값사메롤요청한 와이즈 토토가 요청된 데이터베이스와 동일한 이름을 가진 역할의 구성원이어야 함을 지정합니다. (동일그룹더 이상 사용되지 않지만 여전히 허용되는 철자법입니다.사메롤.) 수퍼유저는 다음 목적을 위해 역할의 구성원으로 간주되지 않습니다.사메롤수퍼유저라는 이유만으로 직접적이든 간접적이든 명시적으로 역할의 구성원이 아닌 경우는 제외됩니다. 값복제복제 연결이 요청되면 레코드가 일치하도록 지정합니다(복제 연결은 특정 데이터베이스를 지정하지 않습니다). 그렇지 않으면 이는 특정의 이름입니다.PostgreSQL데이터베이스. 여러 데이터베이스 이름을 쉼표로 구분하여 제공할 수 있습니다. 데이터베이스 이름을 포함하는 별도의 파일은 파일 이름 앞에를 붙여 지정할 수 있습니다.@.
이 레코드가 일치하는 데이터베이스 와이즈 토토 이름을 지정합니다. 값전체모든 와이즈 토토와 일치함을 지정합니다. 그렇지 않은 경우 이는 특정 데이터베이스 와이즈 토토의 이름이거나 앞에 가 붙은 그룹 이름입니다.+. (와이즈 토토와 그룹 사이에는 실제적인 구별이 없다는 점을 기억하십시오.PostgreSQL; 에이+마크는 정말 의미가 있습니다"직간접적으로 이 역할의 구성원인 역할과 일치합니다.", a가 없는 이름은+표시는 해당 특정 역할에만 일치합니다.) 이 목적을 위해 수퍼유저는 단순히 수퍼유저라는 이유만으로가 아니라 직간접적으로 명시적으로 역할의 구성원인 경우에만 역할의 구성원으로 간주됩니다. 여러 와이즈 토토 이름을 쉼표로 구분하여 제공할 수 있습니다. 와이즈 토토 이름이 포함된 별도의 파일은 파일 이름 앞에를 붙여 지정할 수 있습니다.@.
이 레코드와 일치하는 클라이언트 시스템 주소를 지정합니다. 이 필드에는 호스트 이름, IP 주소 범위 또는 아래에 언급된 특수 키워드 중 하나가 포함될 수 있습니다.
IP 주소 범위는 범위의 시작 주소에 대한 표준 숫자 표기법과 슬래시()를 사용하여 지정됩니다./) 및 aCIDR마스크 길이. 마스크 길이는 일치해야 하는 클라이언트 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 주소를 나타냅니다. 단일 호스트를 지정하려면 IPv4의 경우 32, IPv6의 경우 128의 마스크 길이를 사용하십시오. 네트워크 주소에서 뒤에 오는 0을 생략하지 마십시오.
IPv4 형식으로 제공된 항목은 IPv4 연결에만 일치하며, IPv6 형식으로 제공된 항목은 IPv6 연결에만 일치합니다. 표시된 주소가 IPv4-in-IPv6 범위에 있더라도 마찬가지입니다. 시스템의 C 라이브러리가 IPv6 주소를 지원하지 않으면 IPv6 형식의 항목이 거부됩니다.
당신도 쓸 수 있습니다전체모든 IP 주소와 일치시키기 위해,동일호스트서버의 자체 IP 주소와 일치시키거나사메넷서버가 직접 연결된 모든 서브넷의 모든 주소와 일치합니다.
호스트 이름이 지정되면(IP 주소 범위가 아니거나 특수 키워드가 호스트 이름으로 처리됨) 해당 이름은 클라이언트 IP 주소의 역방향 이름 확인 결과(예: DNS가 사용되는 경우 역방향 DNS 조회)와 비교됩니다. 호스트 이름 비교에서는 대소문자를 구분하지 않습니다. 일치하는 항목이 있으면 호스트 이름에 대해 정방향 이름 확인(예: 정방향 DNS 조회)이 수행되어 확인된 주소가 클라이언트의 IP 주소와 동일한지 확인합니다. 두 방향이 모두 일치하면 항목이 일치하는 것으로 간주됩니다. (사용되는 호스트 이름pg_hba.conf클라이언트 IP 주소의 주소 대 이름 확인이 반환되는 것이어야 합니다. 그렇지 않으면 행이 일치하지 않습니다. 일부 호스트 이름 데이터베이스에서는 IP 주소를 여러 호스트 이름과 연결하는 것을 허용하지만 운영 체제는 IP 주소 확인을 요청하는 경우 하나의 호스트 이름만 반환합니다.)
점으로 시작하는 호스트 이름 지정(.)는 실제 호스트 이름의 접미사와 일치합니다. 그래서.example.com일치할 것임foo.example.com(그러나 단지가 아님example.com).
호스트 이름이 다음에 지정된 경우pg_hba.conf, 이름 확인이 상당히 빠른지 확인해야 합니다. 다음과 같은 로컬 이름 확인 캐시를 설정하는 것이 유리할 수 있습니다.nscd. 또한 구성 매개변수를 활성화할 수도 있습니다.로그_호스트 이름로그의 IP 주소 대신 클라이언트의 호스트 이름을 보려면.
이 필드는 다음에만 적용됩니다.호스트, hostssl및hostnossl기록.
이 두 필드는 다음 대신 사용할 수 있습니다.IP-주소/마스크 길이표기법. 마스크 길이를 지정하는 대신 실제 마스크가 별도의 열에 지정됩니다. 예를 들어,255.0.0.0는 IPv4 CIDR 마스크 길이 8을 나타냅니다.255.255.255.255CIDR 마스크 길이 32를 나타냅니다.
이 필드는 다음에만 적용됩니다.호스트, hostssl및hostnossl기록.
연결이 이 레코드와 일치할 때 사용할 인증 방법을 지정합니다. 가능한 선택 사항은 여기에 요약되어 있습니다. 자세한 내용은 다음을 참조하세요.윈 토토 PostgreSQL : 문서 : 9.4 : 인증 방법.
무조건 연결을 허용합니다. 이 방법을 사용하면 누구나 연결할 수 있습니다.PostgreSQL데이터베이스 서버로 로그인 가능PostgreSQL암호나 다른 인증이 필요 없이 원하는 와이즈 토토입니다. 보다섹션 19.3.1자세한 내용은.
무조건 연결을 거부합니다. 이것은 다음과 같은 경우에 유용합니다."필터링 중"그룹의 특정 호스트(예: a거부라인은 특정 호스트의 연결을 차단할 수 있지만 이후 라인은 특정 네트워크의 나머지 호스트 연결을 허용합니다.
클라이언트가 인증을 위해 이중 MD5 해시 비밀번호를 제공하도록 요구합니다. 보다섹션 19.3.2자세한 내용은.
클라이언트가 인증을 위해 암호화되지 않은 비밀번호를 제공하도록 요구합니다. 비밀번호는 네트워크를 통해 일반 텍스트로 전송되므로 신뢰할 수 없는 네트워크에서는 사용하면 안 됩니다. 보다섹션 19.3.2자세한 내용은.
GSSAPI를 사용하여 와이즈 토토를 인증하세요. 이는 TCP/IP 연결에만 사용할 수 있습니다. 보다섹션 19.3.3자세한 내용은.
SSPI를 사용하여 와이즈 토토를 인증하세요. 이 기능은 Windows에서만 사용할 수 있습니다. 보다섹션 19.3.4자세한 내용은.
클라이언트의 ident 서버에 접속하여 클라이언트의 운영 체제 와이즈 토토 이름을 얻고 요청된 데이터베이스 와이즈 토토 이름과 일치하는지 확인하십시오. ID 인증은 TCP/IP 연결에서만 사용할 수 있습니다. 로컬 연결에 대해 지정된 경우 피어 인증이 대신 사용됩니다. 보다섹션 19.3.5자세한 내용은.
운영 체제에서 클라이언트의 운영 체제 와이즈 토토 이름을 얻고 요청된 데이터베이스 와이즈 토토 이름과 일치하는지 확인하십시오. 로컬 연결에만 사용할 수 있습니다. 보다섹션 19.3.6자세한 내용은.
다음을 사용하여 인증LDAP서버. 보다섹션 19.3.7자세한 내용은.
RADIUS 서버를 사용하여 인증하세요. 보다섹션 19.3.8자세한 내용은.
SSL 클라이언트 인증서를 사용하여 인증합니다. 보다섹션 19.3.9자세한 내용은.
운영 체제에서 제공하는 PAM(Pluggable Authentication Modules) 서비스를 사용하여 인증합니다. 보다섹션 19.3.10자세한 내용은.
이후인증 방법필드, 다음 형식의 필드가 있을 수 있습니다.이름=값인증 방법에 대한 옵션을 지정합니다. 아래에는 인증 방법에 따라 사용할 수 있는 옵션에 대한 세부정보가 나와 있습니다.
다음에 포함된 파일@구조물은 공백이나 쉼표로 구분할 수 있는 이름 목록으로 읽혀집니다. 댓글은 다음으로 소개됩니다.#, 마찬가지로pg_hba.conf및 중첩@구조가 허용됩니다. 다음 파일 이름이 아닌 경우@은 절대 경로이며 참조 파일이 포함된 디렉터리에 대한 상대 경로로 간주됩니다.
이후pg_hba.conf레코드는 각 연결 시도에 대해 순차적으로 검사되며 레코드의 순서는 중요합니다. 일반적으로 이전 레코드에는 엄격한 연결 일치 매개변수와 약한 인증 방법이 있는 반면, 이후 레코드에는 느슨한 일치 매개변수와 더 강력한 인증 방법이 있습니다. 예를 들어 다음을 사용하고 싶을 수도 있습니다.신뢰로컬 TCP/IP 연결에 대한 인증이 필요하지만 원격 TCP/IP 연결에는 비밀번호가 필요합니다. 이 경우에는 다음을 지정하는 레코드입니다.신뢰127.0.0.1의 연결에 대한 인증은 더 넓은 범위의 허용된 클라이언트 IP 주소에 대한 비밀번호 인증을 지정하는 레코드 앞에 나타납니다.
그pg_hba.conf파일은 시작 시 그리고 주 서버 프로세스가 수신할 때 읽혀집니다.SIGHUP신호. 활성 시스템에서 파일을 편집하는 경우 포스트마스터에게 신호를 보내야 합니다(pg_ctl 다시 로드, SQL 함수 호출pg_reload_conf()또는 다음을 사용하여죽임 -HUP) 파일을 다시 읽도록 합니다.
팁:특정 데이터베이스에 연결하려면 와이즈 토토는 다음을 통과해야 합니다.pg_hba.conf확인하지만 다음이 있어야 합니다연결데이터베이스에 대한 권한입니다. 어떤 와이즈 토토가 어떤 데이터베이스에 연결할 수 있는지 제한하려는 경우 일반적으로 승인/취소를 통해 이를 제어하는 것이 더 쉽습니다.연결규칙을 넣는 것보다 특권pg_hba.conf항목.
다음의 몇 가지 예pg_hba.conf항목은 다음에 표시됩니다.예 19-1. 다양한 인증 방법에 대한 자세한 내용은 다음 섹션을 참조하세요.
예제 19-1. 예pg_hba.conf항목
# 로컬 시스템의 모든 와이즈 토토가 다음을 사용하여 모든 데이터베이스에 연결할 수 있도록 허용합니다. # 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의 모든 연결을 거부합니다(해당 항목은 # 먼저 일치), 그러나 다른 곳에서의 GSSAPI 연결은 허용합니다. #인터넷에서. 제로 마스크로 인해 호스트 IP 비트가 발생하지 않습니다. # 주소를 고려해야 하므로 모든 호스트와 일치합니다. # # 유형 데이터베이스 와이즈 토토 주소 방법 모두 호스트 모두 192.168.54.1/32 거부 모두 모두 호스팅 0.0.0.0/0 gss # 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