이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

28장. 보안

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

  • 데이터베이스 파일 보호. 내에 저장된 모든 파일은 데이터베이스는 다른 계정이 읽을 수 없도록 보호됩니다.포스트그레스수퍼유저 계정.

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

  • 클라이언트 연결은 IP 주소 및/또는 IP 주소로 제한될 수 있습니다. 스포츠 토토 이름은pg_hba.conf파일 입력PG_DATA.

  • 클라이언트 연결은 다른 외부를 통해 인증될 수 있습니다. 패키지.

  • 다음의 각 사용자포스트그레스이다 스포츠 토토 이름과 (선택적으로) 비밀번호를 할당했습니다. 기본적으로 스포츠 토토는 자신이 소유하지 않은 데이터베이스에 대한 쓰기 액세스 권한이 없습니다. 생성합니다.

  • 사용자는 다음에 할당될 수 있습니다.그룹, 그룹에 따라 테이블 접근이 제한될 수 있습니다. 특권.

스포츠 토토 인증

인증이 프로세스는 다음과 같습니다. 백엔드 서버 및우체국장데이터에 대한 액세스를 요청하는 스포츠 토토가 실제로 누구인지 확인하세요. 그/그녀는 그렇다고 주장한다. 호출하는 모든 스포츠 토토포스트그레다음 내용과 비교하여 확인됩니다.pg_user클래스가 올바른지 확인하세요. 그렇게 할 권한이 있습니다. 다만, 이용자의 실제 사항에 대한 확인은 신원 확인은 다양한 방식으로 수행됩니다.

스포츠 토토 쉘에서

스포츠 토토 쉘에서 시작된 백엔드 서버는 사용자의 (유효) a를 수행하기 전의 사용자 IDsetuid스포츠 토토의 스포츠 토토 ID로포스트그레. 유효한 사용자 ID가 사용됩니다. 액세스 제어 확인의 기초로 사용됩니다. 다른 인증 없음 실시됩니다.

네트워크에서

만약에포스트그레시스템은 분산형으로 구축되어 인터넷 TCP 포트에 대한 액세스가 가능합니다.우체국장프로세스는 누구나 이용 가능합니다. DBA는 pg_hba.conf 파일을 다음 위치에 구성합니다. 인증 시스템이 무엇인지 지정하는 PGDATA 디렉토리 연결을 만드는 호스트에 따라 사용됩니다. 어떤 데이터베이스에 연결되어 있는지. 참조pg_hba.conf(5)설명은 인증 시스템을 사용할 수 있습니다. 물론 호스트 기반 인증은 Unix에서도 완벽하지 않습니다. 그것은 결정적인 침입자가 가장할 수도 있습니다. 발생 호스트. 이러한 보안 문제는 다음의 범위를 벗어납니다.포스트그레스.

호스트 기반 접근 제어

호스트 기반 액세스 제어이름은 클라이언트가 무엇인지에 대한 PostgreSQL의 기본 제어를 위해 데이터베이스에 대한 액세스가 허용되고 해당 클라이언트의 사용자가 어떻게 본인 인증을 해야 합니다.

각 데이터베이스 시스템에는 다음 이름의 파일이 포함되어 있습니다.pg_hba.conf, 그 안에PGDATA각 데이터베이스에 연결할 수 있는 사람을 제어하는 디렉토리.

데이터베이스에 액세스하는 모든 클라이언트반드시다음 항목 중 하나에 포함됨pg_hba.conf. 그렇지 않으면 시도된 모든 연결 해당 클라이언트에서는 "사용자 인증"으로 거부됩니다. 실패했습니다' 오류 메시지가 표시됩니다.

일반 형식pg_hba.conf파일은 한 줄에 하나씩 레코드 집합으로 구성됩니다. 빈 줄과 줄 해시 문자("#")로 시작하는 문자는 무시됩니다. 기록이 만들어졌다 공백 및/또는 구분된 여러 필드로 구성 탭.

Unix 도메인 소켓을 사용하여 클라이언트로부터의 연결을 만들 수 있습니다 또는 인터넷 도메인 소켓(즉, TCP/IP). 다음을 사용하여 만든 연결 Unix 도메인 소켓은 다음 레코드를 사용하여 제어됩니다. 형식:

로컬데이터베이스 인증 방법

어디에서
데이터베이스다음을 지정합니다. 이 레코드가 적용되는 데이터베이스입니다. 값전체모든 항목에 적용됨을 지정합니다. 데이터베이스.
인증 방법사용자가 자신을 인증하기 위해 사용해야 하는 방법을 지정합니다. Unix 도메인 소켓을 사용하여 해당 데이터베이스에 연결할 때. 는 다양한 방법이 아래에 설명되어 있습니다.

인터넷 도메인 소켓을 사용하여 이루어진 연결이 제어됩니다 다음 형식의 기록을 사용합니다.

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

TCP/IP 주소논리적으로는 지정된 둘 다에 andedTCP/IP 마스크그리고 연결하는 클라이언트의 TCP/IP 주소. 만약 두 결과 값이 동일하면 레코드가 이에 사용됩니다. 연결. 연결이 둘 이상의 레코드와 일치하는 경우 파일에서 가장 이른 것이 사용됩니다. 둘 다TCP/IP 주소그리고TCP/IP 마스크점으로 구분된 십진수로 지정됩니다. 표기법.

연결이 어떤 기록과도 일치하지 않으면 다음은거부인증 방법이 적용되었습니다(참조 아래).

인증 방법

다음 인증 방법은 두 Unix 모두에서 지원됩니다. 및 TCP/IP 도메인 소켓:

신뢰

접속은 무조건 허용됩니다.

거부

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

암호

클라이언트에 사용자의 비밀번호를 묻는 메시지가 표시됩니다. 이것은 암호화되어 전송됨(사용암호(3)) 및 에 보관된 비밀번호와 비교됩니다.pg_shadow테이블. 비밀번호가 일치하면, 연결이 허용됩니다.

비밀번호

클라이언트에 사용자의 비밀번호를 묻는 메시지가 표시됩니다. 이것은 명확하게 전송되고 에 있는 비밀번호와 비교됩니다.pg_shadow테이블. 비밀번호가 일치하면 연결이 허용됩니다. 선택적 비밀번호 파일은 다음과 같습니다. 뒤에 지정되어야 합니다.비밀번호제공된 비밀번호와 일치하는 데 사용되는 키워드 pg_shadow 테이블보다. 참조pg_passwd.

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

krb4

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

krb5

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

ident

클라이언트의 ident 서버는 다음을 인증하는 데 사용됩니다. 사용자(RFC 1413). 선택적 지도 이름은 다음에 지정할 수 있습니다.ident식별을 허용하는 키워드 매핑할 스포츠 토토 이름포스트그레스사용자 이름. 지도는 다음 장소에서 개최됩니다. 파일$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 암호화 호스팅