마니의 공부방/DataBase

[postgresql] 외부 접근 허용 설정

postgresql 설치후에 로컬밖에 접속이 안돼?

PostgreSQL은 IP를 기반으로 한 접근 제어를 통해 보안 증대 효과를 보고있습니다.

최초 설치시 localhost에서만 접근만을 허용하기 때문에 어떠한 원격 접속이 불가합니다.

때문에 우리가 사용하고 있는 IP를 허용해주는 설정이 필요합니다.

 

미 설정시 Access Denied 발생!

이 설정을 수행하지 않고 접속을 시도할 경우 아래와 같은 Error가 발생합니다.

<postgres 외부접근 에러 내용>

pg_hba.conf 파일 수정

■ 하나의 IP / IP 대역 허용

<root@linux># vi /etc/postgresql/9.1/main/pg_hba.conf
host    all             all             192.168.0.0/24          md5
host    all             all             192.168.1.50/24           md5

위 설정은, 192.168.0.X/24 대역의 모든 User가 모든 DB에 접근이 가능하며, 192.168.1.50/24 IP의 모든

User가 모든 DB에 접근이 가능하다는 설정입니다.

참고로 /24는 Subnetmask 255.255.255.0을 의미합니다.

(255.255.255.0은 11111111.11111111.11111111.00000000이므로 24bit이기 때문입니다.)

 

■ 모든 IP / IP 대역 허용

위와 같이 설정할 경우, Access할 수 있는 IP를 일일히 입력해줘야 된다는 번거로움이 있습니다.

모든 IP를 허용하고자 할 경우, 아래 내용을 /etc/postgresql/9.1/main/pg_hba.conf에 추가해주시면 됩니다.

host    all             all             0.0.0.0/0           md5

postgres.conf 수정

/etc/postgresql/9.1/main/postgresql.conf file을 열어, 'listen_address' 값을 변경합니다.

<root@linux># vi /etc/postgresql/9.1/main/postgresql.conf
listen_addresses = '*'

서비스 재시작

설정 값 변경을 적용시키기 위해 Service를 재시작합니다.

<root@linux># /etc/init.d/posgresql restart
 * Restarting PostgreSQL 9.1 database server                       [ OK ]

 

예전(몇년전...)에 메모해둔것을 블로그에 다시 적으며 기본을 공부하고있습니다.

 

요즘 시스템과 많이 다른부분이 있을지도 모르지만, 기본구성이 이렇다는걸 알게되면 이와 비슷한 상황인 경우 대처가 수월할것 같아 글을 남깁니다.