DB/postgresql

pg_hba.conf 설정하기

SambaLim 2019. 1. 15. 22:23

@markdown

_

## Host Type

Host Type은 접근자의 접근위치와 통신의 암호화 관련 설정입니다.
local, host, hostssl, hostnossl을 지원합니다.

local은 자칫 localhost로 생각할 수 있겠지만, local은 Unix Domain Socket을 통한 접속에 해당되는 것으로 다소 햇갈릴수 있으니 주의 하시기 바랍니다.

#### 데이터베이스의 백업 및 복구

hostssl은 ssl인증서를 통한 암호화 통신만 지원하며 localhost, 127.0.0.1식의 즉 TCP/IP접속에 해당된다.
hostnossl은 ssl접속은 불가능하며, TCP/IP통신을 지원합니다.

host나 hostssl로 설정한 상태에서 SSL기능을 사용하시려면 Postgres컴파일시 –with-openssl옵션을 주어야 하며, postgresql.conf에 ssl=true로 설정을 해주셔야만 합니다.


## Database Name

특정한 디비에 대한 접속을 제한할 수 있으며 ,(콤마)로 여러 개의 DB로 접근 제어가 가능합니다. 모든 DB에 대한 접근을 풀려면 all로 설정하시면 됩니다. 만약에 설정할 DB가 수십개라면 기재하기 불편하실경우 @dblist.txt 식으로 설정하고 dblist.txt을 PGDATA로 설정한 폴더의 안에 넣어 두시면됩니다.


## User Name

계정설정으로 ,(콤마)구분으로 할 수 있으며, Database의 @파일명 식으로 따로 파일을 만들어서 처리하실수도 있습니다. PostgreSQL의 계정 그룹 카탈로그 테이블인 pggroup 또는 creategroup 명령으로 그룹을 만들어 계정들은 하위(SYSID)에 묶어두었을때는 +(플러스) 키를 붙인 그룹명으로 설정하면 해당 그룹에 대한 모든 접근이 가능해집니다.


## CIDR-ADDRESS or IP-Mask

IPv4 CIDR구분으로 해당 C Class에 대해 모두 접근처리를 할 경우는 : xxx.xxx.xxx.0/24
해당 IP에 대한 접근처리를 할 경우는 : xxx.xxx.xxx.xxx/32


## Authentication Method

이 부분은 실제적인 계정의 패스워드에 대한 서버로의 전송을 어떻게 할 것인가를 정하는 것입니다.
PostgreSQL Server와 Client와의 접속에는 처음 Client가 접속을 하게 되면 pg_hba.conf에 대해 검색해서 해당 접속에 대한 접근허용을 확인하고 확인이 되면 이 Auth.Method에 설정된 암호화 방식으로 패스워드를 전송하라고 응답메시지를 보내고 다시 Client가 Server로 로그인을 하게 되는 방식입니다.

_

- trust : 패스워드 없이 접근 가능
- reject : 거부
- md5 : 패스워드를 md5로 암호화해서 전송
- crypt : crypt로 암호화 해서 전송 Postgres 7.2이후부터는 사용 않함. (이전버전설정 호환용)
- password : text로 패스워드를 전송하는 것.
- krb4, krb5 : KerberOS V4, 5를 지원한다.
- ident : 접속 ClientOS User이름을 확인하는 방법?
- pam : PAM(Pluggable Authentication Modules)서비스를 사용한 인증

'DB > postgresql' 카테고리의 다른 글

PostgreSQL INSERT 중복방지  (0) 2020.04.10
PostgreSQL EXISTS & IN  (0) 2020.04.10