gaussdb 데이터베이스 사용자 및 보안 관리 [클라이언트 액세스 인증] [02]

1. 클라이언트 액세스 인증 구성

클라이언트 액세스 인증은 데이터베이스의 데이터 디렉토리에 저장된 구성 파일 (기본 이름은 pg_hba.conf)에 의해 제어됩니다. hba (호스트 기반 인증)는 호스트 기반 인증을 의미합니다.

배경 정보
GaussDB는 다음 세 가지 인증 방법을 지원하며, 인증 방법에 관계없이 pg_hba.conf 파일을 설정해야합니다.

  • 호스트 기반 인증 : 서버는 클라이언트의 IP 주소, 사용자 이름 및 액세스 할 데이터베이스를 기반으로 구성 파일을 확인하여 사용자 인증 여부를 결정합니다.
  • 암호 인증 : 원격 연결을위한 암호화 된 암호 인증과 로컬 연결을위한 비 암호화 암호 인증을 포함합니다.
  • SSL 암호화 : VPP SSL을 사용하여 서버와 클라이언트 간의 안전한 연결 환경을 제공합니다.
  • pg_hba.conf 파일의 형식은 인증 규칙을 나타내는 한 줄에 기록 된 레코드입니다. 공백과 주석 (#로 시작)은 무시됩니다.
  • 각 인증 규칙은 공백 및 / 또는 탭으로 구분 된 여러 필드로 구성됩니다. 필드가 따옴표로 묶인 경우 공백을 포함 할 수 있습니다. 레코드는 라인간에 존재할 수 없습니다.

pg_hba.conf 파일의 각 레코드는 다음 네 가지 형식 중 하나 일 수 있습니다. 네 가지 형식에 대한 매개 변수 설명은 구성 파일 참조를 참조하십시오.

local     DATABASE USER METHOD [OPTIONS]
host      DATABASE USER ADDRESS METHOD [OPTIONS]
hostssl   DATABASE USER ADDRESS METHOD [OPTIONS]
hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

시스템은 인증 중에 각 연결 요청 시퀀스에 대해 pg_hba.conf의 레코드를 확인하기 때문에,따라서이 레코드의 순서는 매우 중요합니다.

따라서 인증 규칙에 대한 구성 권장 사항은 다음과 같습니다.

  • 상위 레코드에는 더 엄격한 연결 매개 변수와 더 약한 인증 방법이 있습니다.
  • 낮은 레코드는 연결 매개 변수가 더 느슨하고 인증 방법이 더 엄격합니다.

참고 :
사용자가 특정 데이터베이스에 성공적으로 연결하려면 pg_hba.conf의 규칙 검사를 통과해야 할뿐만 아니라 데이터베이스에 대한 CONNECT 권한도 있어야합니다. 어떤 사용자가 어떤 데이터베이스에 연결할 수 있는지 제한하려면 일반적으로 pg_hba.conf에서 규칙을 설정하는 것보다 CONNECT 권한을 부여 / 취소하는 것이 더 쉽습니다.

구성을 적용하려면 데이터베이스 서비스를 다시 시작하십시오.

gs_ctl restart
  • 표 1 오류 프롬프트
문제 현상 해결책
사용자가 존재하지 않거나 암호가 잘못되었습니다 :
치명적 : 사용자 이름 / 암호 가 잘못되었습니다. 로그인이 거부되었습니다.
이 메시지는 사용자 이름 또는 암호가 잘못되었음을 나타냅니다. 입력이 잘못되었는지 확인하십시오.
연결된 데이터베이스가 없습니다.
FATAL : 데이터베이스 "TESTDB"가 없습니다.
이 메시지는 연결하려는 데이터베이스가 존재하지 않음을 나타냅니다. 연결하려는 데이터베이스 이름이 잘못 입력되었는지 확인하십시오.
클라이언트 일치 레코드가
없습니다 . 치명적 : 호스트 "123.123.123.123", 사용자 "ANDYM", 데이터베이스 "TESTDB"에 대한 pg_hba.conf 항목이 없습니다.
이 메시지는 서버가 연결되었지만 pg_hba.conf 구성 파일에서 일치하는 레코드를 찾지 못했기 때문에 서버가 연결 요청을 거부했음을 나타냅니다. pg_hba.conf 구성 파일에 정보를 추가하려면 데이터베이스 관리자에게 문의하십시오.
  • 작업 예
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
#表示只允许以安装时-U参数指定的用户从服务器本机进行连接
local    	all             all                                     trust
# IPv4 local connections:
#表示允许gaussdba用户从10.10.10.2主机上连接到GaussDB的任意数据库,使用sha256算法对密码进行加密
host     	all           	gaussdba        10.10.10.2/32         	sha256
#表示允许任何用户从10.0.0.0/8网段的主机上连接到GaussDB的任意数据库,使用sha256算法对密码进行加密
hostssl    	all             all             10.0.0.0/8            	sha256

2. 구성 파일 참조

표 1 매개 변수 설명

매개 변수 이름 기술 범위
현지 이 레코드가 Unix 도메인 소켓을 통한 연결 만 허용 함을 나타냅니다. 이 유형의 레코드가 없으면 Unix 도메인 소켓 연결이 허용되지 않습니다.

기본적으로 서버에서 연결하는 데 gsql이 사용되고 -U 매개 변수가 지정되지 않은 경우에만 Unix 도메인 소켓을 통한 연결입니다.
-
주최자 이는이 레코드가 일반 TCP / IP 소켓 연결을 허용하고 SSL로 암호화 된 TCP / IP 소켓 연결도 허용 함을 의미합니다. -
hostssl 이 레코드가 SSL로 암호화 된 TCP / IP 소켓 연결 만 허용 함을 나타냅니다. 보안 연결에 SSL을 사용하려면 디지털 인증서를 신청하도록 구성하고 관련 매개 변수를 구성해야합니다. 자세한 내용은 보안 TCP / IP 연결에 SSL 사용을 참조하십시오.
hostnossl 이 레코드가 정상적인 TCP / IP 소켓 연결 만 허용 함을 나타냅니다. -
데이터 베이스 레코드가 일치하고 액세스를 허용하는 데이터베이스를 선언하십시오. all : 레코드가 모든 데이터베이스와 일치 함을 나타냅니다.
sameuser : 요청 된 데이터베이스와 요청 된 사용자의 이름이 같으면 일치 함을 나타냅니다.
samerole : 요청 된 사용자가 데이터베이스와 이름이 같은 역할의 구성원이어야 함을 나타냅니다.
특정 데이터베이스의 이름 또는 쉼표로 구분 된 데이터베이스 목록입니다.
참고 :
"all"키워드는 "replication"과 일치하지 않습니다. 복제에 액세스하려면 별도의 레코드를 사용해야합니다.
사용자 레코드가 일치하는 데이터베이스 사용자를 선언하고 액세스를 허용하십시오. all : 레코드가 모든 사용자와 일치 함을 나타냅니다.
특정 데이터베이스 사용자의 이름 또는 쉼표로 구분 된 사용자 목록입니다.
접두사 + 사용자 역할은이 역할에 직접 또는 간접적으로 속한 모든 구성원과 일치 함을 의미합니다.
사용자 이름이 포함 된 파일은 파일 이름 앞에 @를 붙여 선언 할 수 있습니다. 파일의 사용자 목록은 쉼표 또는 줄 바꿈으로 구분됩니다.
주소 레코드와 일치하는 IP 주소 범위를 지정하고 액세스를 허용합니다.

IP 주소 / 마스크 길이의 두 가지 형식으로 표현할 수있는 IPv4 및 IPv6을 지원합니다 . 예 : 10.10.10.0/24
IP 주소 서브넷 마스크. 예를 들어 10.10.10.0 255.255.255.0

IPv4 형식으로 지정된 IP 주소가 해당 주소가있는 IPv6 연결과 일치 함을 의미 합니다. 예를 들어 127.0.0.1은 IPv6 주소 :: ffff : 127.0.0.1과 일치합니다.
방법 연결할 때 사용되는 인증 방법을 선언하십시오. GaussDB는 다음과 같은 인증 방식을 지원합니다. 자세한 설명은 Table 2 :

trust
reject
md5 (권장하지 않음)
sha256을 참조하십시오.
옵션 OPTION은 인증을위한 선택 세트이며 형식은 NAME = VALUE입니다. 사용 가능한 옵션은 인증 방법에 따라 다릅니다.

참고 :
GaussDB에서 지원하는 인증 방법에는이 매개 변수가 필요하지 않습니다.

표 2 인증 방법

확인 방법 기술
믿음 이 인증 모드를 채택하면 GaussDB는 서버에서 gsql을 사용하는 연결 만 완전히 신뢰하고 -U 매개 변수를 지정하지 않으며 이때 비밀번호가 필요하지 않습니다.

신뢰 인증은 단일 사용자 워크 스테이션의 로컬 연결에 매우 적합하고 편리하며 일반적으로 다중 사용자 환경에는 적합하지 않습니다. 이 인증 방법을 사용하려면 파일 시스템 권한을 사용하여 서버의 Unix 도메인 소켓 파일에 대한 액세스를 제한 할 수 있습니다. 이 제한을 수행하는 방법에는 두 가지가 있습니다

. unix_socket_permissions 매개 변수와 unix_socket_group 매개 변수를 설정합니다.
unix_socket_directory를 설정하여 적절하게 제한된 디렉토리에 Unix 도메인 소켓 파일을 배치합니다.
참고 :
파일 시스템 권한 설정은 Unix 도메인 소켓 연결에만 도움이되며 로컬 TCP / IP 연결을 제한하지는 않습니다. 로컬 TCP / IP 보안을 보장하기 위해 GaussDB는 원격 연결이 신뢰 인증 방법을 사용하는 것을 허용하지 않습니다.
받지 않다 무조건 연결을 거부합니다. 종종 특정 호스트를 필터링하는 데 사용됩니다.
md5 클라이언트는 인증을 위해 md5 암호화 된 암호를 제공해야합니다.

주의 :
md5 인증은 안전하지 않은 암호화 알고리즘이고 네트워크 보안 위험을 초래하므로 권장되지 않습니다. GaussDB는 타사 도구 (예 : TPCC 평가 도구)의 사용을 용이하게하기 위해 md5 인증 및 암호 저장소를 유지합니다.
sha256 클라이언트는 인증을 위해 sha256 알고리즘에 의해 암호화 된 암호를 제공해야합니다. 암호는 보안을 강화하기 위해 전송 프로세스 중에 솔트의 단방향 sha256 암호화 (서버에서 클라이언트로 전송되는 임의의 숫자)와 결합됩니다.

추천

출처blog.csdn.net/qq_42226855/article/details/109563367