이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

28 장 보안

데이터베이스 보안이 여러 수준에서 해결됩니다.

  • 데이터베이스 파일 보호. 모든 파일 내에 저장된 파일 데이터베이스는 그만큼PostgresSuperuser 계정.

  • 클라이언트에서 데이터베이스 서버로의 연결은 다음과 같습니다. 기본값, TCP/IP를 통해서가 아닌 로컬 유닉스 소켓을 통해서만 허용됩니다. 소켓. 백엔드는로 시작해야합니다.-i비 국소 클라이언트를 허용하는 옵션 연결하다.

  • 클라이언트 연결은 IP 주소 및/또는에 의해 제한 될 수 있습니다 를 통한 스포츠 토토 이름pg_hba.conf파일에서PG_DATA.

  • 클라이언트 연결은 기타 외부를 인증 할 수 있습니다 패키지.

  • 각 스포츠 토토PostgresIS 스포츠 토토 이름과 (선택적으로) 비밀번호를 할당했습니다. 기본적으로 스포츠 토토는 그렇지 않은 데이터베이스에 대한 쓰기 액세스가 없습니다. 만들다.

  • 스포츠 토토가 할당 될 수 있습니다그룹, 테이블 액세스는 그룹에 따라 제한 될 수 있습니다 특권.

스포츠 토토 입증

인증백엔드 서버 및Postmaster데이터에 대한 액세스를 요청하는 스포츠 토토가 실제로 그/그녀는 주장합니다. 호출 한 모든 스포츠 토토Postgres의 내용에 대해 확인됩니다 그만큼PG_USER클래스를 보장합니다 그렇게 할 권한이 있습니다. 그러나 스포츠 토토의 실제 검증 정체성은 다양한 방법으로 수행됩니다.

스포츠 토토 쉘에서

스포츠 토토 쉘에서 시작된 백엔드 서버 (효과) a user-id를 수행하기 전에setuid스포츠 토토의 스포츠 토토 ID에Postgres. 효과적인 사용자 ID가 사용됩니다 액세스 제어 점검의 기초로. 다른 인증이 없습니다 수행됩니다.

네트워크에서

IFPostgres시스템입니다 배포 된 것으로 제작 된 인터넷 TCP 포트에 대한 액세스Postmaster프로세스입니다 누구나 사용할 수 있습니다. DBA는 pg_hba.conf 파일을 구성합니다 인증 시스템이 무엇인지 지정하기위한 PGDATA 디렉토리 연결을하는 호스트에 따라 사용하고 연결하는 데이터베이스. 보다pg_hba.conf (5)에 대한 설명 인증 시스템을 사용할 수 있습니다. 물론 호스트 기반 유닉스에서는 인증도 바보가 아닙니다. 그것은 결정된 침입자가 가장 무서울 수 있습니다 원래 호스트. 이러한 보안 문제는의 범위를 벗어납니다.Postgres.

호스트 기반 액세스 제어

호스트 기반 액세스 제어이름입니다 기본 제어는 고객이 무엇인지에 대한 PostgreSQL 연습을 위해 데이터베이스에 액세스 할 수 있고 해당 고객의 사용자가 어떻게 스스로 인증해야합니다.

각 데이터베이스 시스템은 이름이 지정된 파일이 포함되어 있습니다PG_HBA.conf, inpgdata디렉토리, 각 데이터베이스에 연결할 수있는 사람을 제어합니다.

데이터베이스에 액세스하는 모든 클라이언트필수|PG_HBA.conf. 그렇지 않으면 모든 연결 시도 해당 클라이언트로부터 "사용자 인증"으로 거부됩니다. 실패 "오류 메시지.

일반 형식PG_HBA.conf파일은 한 줄 당 레코드 세트입니다. 빈 줄과 선 해시 문자 ( "#")부터 시작하여 무시됩니다. 기록이 만들어졌습니다 공간 및/또는 탭.

Unix 도메인 소켓을 사용하여 클라이언트의 연결을 만들 수 있습니다. 또는 인터넷 도메인 소켓 (예 : TCP/IP). 연결을 사용합니다 UNIX 도메인 소켓은 다음의 레코드를 사용하여 제어됩니다. 체재:

Local데이터베이스 인증 방법

여기서
데이터베이스이 레코드가 적용되는 데이터베이스. 값all모든 사람에게 적용되는 것을 지정합니다 데이터베이스.
인증 방법사용자가 스스로 인증하기 위해 사용해야하는 메소드를 지정합니다. UNIX 도메인 소켓을 사용하여 해당 데이터베이스에 연결할 때. 그만큼 다른 방법은 아래에 설명되어 있습니다.

인터넷 도메인 소켓을 사용하여 만든 연결이 제어됩니다 다음 형식의 레코드 사용.

host데이터베이스 TCP/IP 주소 TCP/IP 마스크 인증 방법

theTCP/IP 주소논리적입니다 지정된 두 가지 모두에게TCP/IP 마스크및 연결 클라이언트의 TCP/IP 주소. 만약 두 가지 결과 값이 같으면 레코드가 사용됩니다. 연결. 연결이 둘 이상의 레코드와 일치하면 파일에서 가장 빠른 것이 사용됩니다. 둘 다TCP/IP 주소and theTCP/IP 마스크는 점선으로 지정되어 있습니다 표기법.

연결이 레코드와 일치하지 않으면거부인증 방법이 적용됩니다 (참조 아래에).

인증 행동 양식

다음 인증 방법은 두 유닉스 모두에 지원됩니다 및 TCP/IP 도메인 소켓 :

신뢰

연결은 무조건 허용됩니다.

거부

연결이 무조건 거부됩니다.

crypt

클라이언트는 스포츠 토토를위한 비밀번호를 요청받습니다. 이것은 암호화 된 전송 (사용crypt (3)) 및 에서 보유 된 비밀번호와 비교pg_shadow테이블. 암호가 일치하면 연결이 허용됩니다.

비밀번호

클라이언트는 사용자를위한 비밀번호를 요청받습니다. 이것은 명확하게 전송되고에서 보유 된 비밀번호와 비교PG_SHADOW테이블. 비밀번호 인 경우 일치하면 연결이 허용됩니다. 선택적 비밀번호 파일이있을 수 있습니다 이후에 지정됩니다.비밀번호제공된 비밀번호와 일치하는 데 사용되는 키워드 PG_SHADOW 테이블보다. 보다pg_passwd.

다음 인증 방법은 TCP/IP에 대해 지원됩니다 도메인 소켓 전용 :

KRB4

Kerberos V4는 사용자를 인증하는 데 사용됩니다.

KRB5

Kerberos v5는 사용자를 인증하는 데 사용됩니다.

ID

클라이언트의 ID 서버는 사용자 (RFC 1413). 선택적 맵 이름은 다음에 지정 될 수 있습니다 그만큼IDID를 허용하는 키워드 맵핑 할 사용자 이름Postgres스포츠 토토 이름. 지도에서지도가 있습니다 파일$pgdata/pg_ident.conf.

예제

# UNIX 도메인 소켓을 통한 모든 연결을 신뢰합니다.
지역 신뢰
#이 컴퓨터에서 TCP/IP를 통해 모든 연결을 신뢰하십시오.
모든 127.0.0.1 255.255.255.255 신탁을 모두 호스트하십시오
# 우리는이 기계가 마음에 들지 않습니다.
모든 192.168.0.10 255.255.255.0 모든 호스트 거부
#이 컴퓨터는 암호화 할 수 없으므로 암호를 명확하게 요청합니다.
모든 192.168.0.3 255.255.255.0 암호를 호스트하십시오
# 나머지이 기계 그룹은 암호화 된 암호를 제공해야합니다.
모든 192.168.0.0 255.255.255.0 Crypt 호스트