이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 20.3. 사설 토토 사이트 방법버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

6.2. 토토 베이 방법

다음은 인증 방법을 자세히 설명합니다 세부 사항.

6.2.1. 신뢰 토토 베이

언제신뢰토토 베이은입니다 지정,postgresql가정합니다 서버에 연결할 수있는 사람은 누구나 권한이 있습니다. 그가 지정한 데이터토토 베이스 사용자로 데이터토토 베이스에 액세스하십시오 (데이터토토 베이스 슈퍼업자 포함). 이 방법 은만이어야합니다 적절한 시스템 수준 보호가있을 때 사용됩니다 포스트 마스터 포트에 대한 연결.

신뢰토토 베이이 적절합니다 단일 사용자의 로컬 연결에 매우 편리합니다 워크 스테이션. 일반적으로not그 자체로 적절한 a 다중 우스 기계. 그러나 사용할 수 있습니다신뢰Multiuser 시스템에서도 우체국 마스터의 소켓 파일을 사용하여 액세스를 제한하십시오 파일 시스템 권한. 이렇게하려면 매개 변수를 설정unix_socket_permissions(및 혹시unix_socket_group) inpostgresql.conf,섹션 3.4.4. 또는 설정할 수 있습니다unix_socket_directory소켓 파일을 배치합니다 적절하게 제한된 디렉토리에서.

파일 시스템 권한 설정은 UNIX-Socket에만 도움이됩니다 사이. 로컬 TCP 연결은 이에 의해 제한되지 않습니다. 따라서 지역 보안에 권한을 사용하려면 제거호스트 ... 127.0.0.1 ...라인 에서pg_hba.conf또는 a로 변경하십시오 비신뢰토토 베이 방법.

신뢰인증은 전용입니다 모든 사용자를 신뢰하는 경우 TCP 연결에 적합합니다. 에 의해 서버에 연결할 수있는 머신pg_hba.conf지정하는 선신뢰. 사용하는 것은 합리적이지 않습니다신뢰다른 TCP 연결의 경우 의 것보다LocalHost(127.0.0.1).

6.2.2. 암호 토토 베이

암호 기반 토토 베이 방법 포함MD5, crypt비밀번호. 이 방법은 작동합니다 마찬가지로 비밀번호가 전송되는 방식을 제외하고 연결. 비밀번호에 대해 전혀 걱정하는 경우"스니핑"공격MD5선호됩니다.crypt지원 해야하는 경우 두 번째 선택 7.2 이전 고객. 솔직한비밀번호특히 열린 인터넷을 통한 연결을 피하십시오 (SSL, SSH 또는 기타 커뮤니케이션 보안을 사용하지 않는 한 연결 주위의 포장지).

PostgreSQL데이터베이스 암호는 운영 체제 사용자 비밀번호와 별개입니다. 각 데이터베이스 사용자의 비밀번호는에 저장됩니다.PG_SHADOW시스템 카탈로그 테이블. 암호는 될 수 있습니다 쿼리 언어 명령으로 관리사용자 만들기ALTER 사용자, 예 :사용자 foo를 만들어냅니다 암호 '비밀';. 기본적으로, 즉 비밀번호가없는 경우 저장된 비밀번호는 NULL 및 비밀번호입니다. 해당 사용자의 인증은 항상 실패합니다.

연결할 수있는 사용자 세트를 제한하려면 특정 데이터토토 베이스, 쉼표로 분리 된 사용자를 나열하거나 별도의 파일. 파일에는 분리 된 사용자 이름이 포함되어야합니다 라인 당 쉼표 또는 하나의 사용자 이름이며 동일한 디렉토리에 있습니다. 처럼pg_hba.conf. (기본)를 언급하십시오 앞서 파일 이름@in 사용자 열. 데이터토토 베이스 열은 비슷하게 a를 수락 할 수 있습니다 값 목록 또는 파일 이름. 그룹 이름을 지정할 수도 있습니다 그룹 이름보다 앞서+.

6.2.3. Kerberos 토토 베이

Kerberosis 산업 표준 보안 토토 베이 시스템에 적합합니다 공개 네트워크를 통한 분산 컴퓨팅. 설명 그만큼Kerberos시스템이 멀다 이 문서의 범위를 넘어서; 모든 일반적인 상태에서 그것은 가능합니다 상당히 복잡한 (아직 강력합니다). 그만큼KerberosFAQ또는MIT 프로젝트 아테나탐사를위한 좋은 출발점이 될 수 있습니다. 몇 가지 출처Kerberos분포가 존재합니다.

사용하려면Kerberos, 제작 시간에 지원해야합니다. 보다1 장자세한 내용. 둘 다 Kerberos 4와 5는 지원되지만 하나의 버전 만 하나의 빌드에서 지원됩니다.

PostgreSQL처럼 작동합니다 일반적인 kerberos 서비스. 서비스 교장의 이름은입니다.ServiceName/hostname@realm, 어디ServiceNameisPostgres(다른 서비스 이름이 아닌 한 |./configure -with-krb-srvnam = 뭐든지).hostname는 완전히 자격을 갖춘 도메인입니다 서버 시스템의 이름. 서비스 교장의 영역은입니다 서버 시스템의 선호되는 영역.

고객 교장은PostgreSQL첫 번째 사용자 이름 구성 요소, 예를 들어pgusername/otherstuff@realm. 현재 고객의 영역은에 의해 확인되지 않습니다.PostgreSQL; 그래서 당신이 크로스 리알름이 있다면 인증이 활성화 된 다음 모든 영역의 모든 원칙 귀하와 의사 소통 할 수 있습니다.

서버 키 파일을 읽을 수 있는지 확인하십시오 ( 가급적으로 만 읽기)PostgreSQL서버 계정 (참조섹션 3.1). 위치 키 파일은로 지정됩니다.KRB_SERVER_KEYFILE실행 시간 구성 매개 변수. (참조젠 토토 : 문서 : 7.3 : 런타임 구성.) 기본값은입니다./etc/srvtabKerberos 4 and을 사용하는 경우파일 : /usr/local/pgsql/etc/krb5.keytab(또는 어떤 디렉토리가Sysconfdir빌드 타임) Kerberos와 함께 5.

KeyTab 파일을 생성하려면 예를 들어 사용하십시오 (버전과 함께 사용하십시오. 5)

Kadmin%Ank -randkey postgres/server.my.domain.org
Kadmin%ktadd -k krb5.keytab postgres/server.my.domain.org

읽기Kerberos자세한 내용을위한 문서.

데이터토토 베이스에 연결할 때 티켓이 있는지 확인하십시오. 요청 된 데이터토토 베이스 사용자 이름과 일치하는 원금의 경우. an 예 : 데이터토토 베이스 사용자 이름Fred, 둘 다 교장fred@example.comandfred/users.example.com@example.comcan 데이터베이스 서버에 토토 베이하는 데 사용됩니다.

사용하는 경우mod_auth_krbandmod_perlon아파치웹 서버, 사용할 수 있습니다authtype Kerberosv5savecredentialswithmod_perl스크립트. 이것은 제공합니다 추가 비밀번호가없는 웹을 통해 데이터베이스 액세스를 보안하십시오 필수의.

6.2.4. IND 기반 토토 베이

ID 토토 베이 방법은 검사를 통해 작동합니다 클라이언트의 운영 체제 사용자 이름 및 허용 결정 데이터베이스 사용자 이름을 나열하는 맵 파일을 사용하여 해당 사용자 이름 쌍이 허용됩니다. 결정 클라이언트의 사용자 이름은 보안 크리티컬 포인트이며 연결 유형에 따라 다르게 작동합니다.

6.2.4.1. TCP/IP에 대한 ID 토토 베이

the"식별 프로토콜"에 설명되어RFC 1413. 사실상 모든 UNIX와 유사한 운영 체제는 ID 서버와 함께 배송됩니다 이는 기본적으로 TCP 포트 113을 듣습니다. 기본 ID 서버의 기능은와 같은 질문에 답하는 것입니다."어떤 사용자가 연결을 시작했는지 당신의 항구에서 나가x및 내 포트에 연결y? ". 부터postgresql둘 다 알고 있습니다xandy물리적 연결이 설정되면 심문 할 수 있습니다 연결 클라이언트 호스트의 ID 서버 및 이론적으로 운영 체제 사용자를 결정할 수 있습니다 이 방법으로 주어진 연결.

이 절차의 단점은 그것이 클라이언트의 무결성 : 클라이언트 시스템이 신뢰할 수없는 경우 또는 공격자가 거의 모든 프로그램을 실행할 수 있습니다. 포트 113에서 그가 선택한 사용자 이름을 반환합니다. 이것 따라서 인증 방법은 적절합니다 각 클라이언트 기계가 빡빡한 닫힌 네트워크 제어 및 데이터베이스 및 시스템 관리자 밀접하게 연락하여 작동합니다. 다시 말해, 당신은 신뢰해야합니다 ID 서버를 실행하는 기계. 경고에 귀를 기울인다 :

식별 프로토콜은 의도되지 않습니다 승인 또는 액세스 제어 프로토콜.

--RFC 1413

6.2.4.2. 로컬 소켓에 대한 ID 토토 베이

시스템 지원SO_PEERCREDUnix-Domain 소켓 요청 (현재 요청Linux, freebsd, netbsdBSD/OS), ID 토토 베이도 가능합니다 로컬 연결에 적용됩니다. 이 경우 보안 위험이 없습니다 ID 토토 베이을 사용하여 추가됩니다. 실제로 그것은입니다 그러한 시스템에서 로컬 연결에 선호되는 선택.

|SO_PEERCRED요청, ID 토토 베이은 TCP/IP에 대해서만 사용할 수 있습니다 사이. 주변의 작업으로를 지정할 수 있습니다.LocalHost주소127.0.0.1이 주소에 대한 연결.

6.2.4.3. Ident Maps

ID 기반 토토 베이을 사용할 때 운영 체제 사용자의 이름을 결정했습니다 연결을 시작했습니다.PostgreSQL해당 사용자가 있는지 확인합니다 그가 요청하는 데이터베이스 사용자로 연결할 수 있습니다. AS를 연결하십시오. 이것은 IND 맵 인수에 의해 제어됩니다 다음ID키워드PG_HBA.conf파일. A가 있습니다 사전 정의 된 IND 맵Sameuser모든 운영 체제 사용자가 데이터베이스로 연결할 수 있습니다. 같은 이름의 사용자 (후자가 존재하는 경우). 다른지도가 있어야합니다 수동으로 생성됩니다.

Ident Maps Other 보다Sameuser파일pg_ident.conf데이터에서 일반 양식의 줄을 포함하는 디렉토리 :

Map-name Idr-Username Database-Username

의견과 공백은 일반적인 방식으로 처리됩니다. 그만큼Map-name는 임의의 이름입니다 이 매핑을 참조하는 데 사용됩니다.PG_HBA.conf. 다른 두 필드는 지정합니다 어떤 운영 체제 사용자가 데이터토토 베이스 사용자. 같은Map-name반복적으로 사용할 수 있습니다 단일 맵 내에서 더 많은 사용자 매핑을 지정하십시오. 아니요 주어진 데이터토토 베이스 사용자 수에 대한 제한 운영 체제 사용자는 해당 및 반대도 마찬가지입니다.

thepg_ident.conf파일은 스타트 업에서 읽습니다 때Postmaster수신 에이Sighup신호. 편집하면 활성 시스템의 파일은에 신호를 보내야합니다.Postmaster(사용PG_CTL Reload또는킬 -앉다) 파일을 다시 읽게하려면

apg_ident.conf할 수있는 파일 와 함께 사용하십시오.PG_HBA.conf파일에서예제 6-1에 표시예 6-2. ~ 안에 이 예제 설정, 누구나 시스템에 로그인 한 사람 192.168 UNIX 사용자 이름이없는 네트워크Bryanh, Ann또는Robert액세스 권한이 부여되지 않습니다. 유닉스 사용자Robert그가 연결하려고 할 때 액세스 허용PostgreSQL사용자bobRobert또는 다른 사람.Ann|Ann. 사용자BryanhAS를 연결할 수 있습니다 어느 하나Bryanh자신 또는 ASGuest1.

예 6-2. 예pg_ident.conf파일

# MapName Idr-Username PG-Username

Omicron Bryanh Bryanh
Omicron Ann Ann
# Bob 은이 기계에 사용자 이름 Robert를 가지고 있습니다
오미 크론 로버트 밥
# Bryanh도 Guest1로 연결할 수 있습니다 1
Omicron Bryanh Guest1

6.2.5. 팸 입증

이 토토 베이 유형은와 유사하게 작동합니다.비밀번호PAM을 사용하는 것을 제외하고 토토 베이 모듈) 토토 베이 메커니즘으로. 그만큼 기본 팸 서비스 이름은PostgreSQL. 선택적으로 자신의 것을 제공 할 수 있습니다 서비스 이름PAM키워드 in 파일. Pam에 대한 자세한 내용은를 읽으십시오.Linux-Pam페이지및 그만큼SolarisPAM 페이지.