database/postgresql

PostgreSQL에서 원격 접속을 허용

두억시니 2019. 4. 1. 11:21

개인 NAS(AS-602T) 의 PostgreSQL 9.3.2 에서 적용했던 내용을 바탕으로 끄적였습니다.


다음의 두개의 파일을 수정해 주면 된다는데,

( 참고 : http://justckh.blogspot.com/2013/10/postgresql-ip.html )


postgresql.conf

pg_hba.conf


저는 개인 NAS를 사용하기 때문에 해당 파일의 위치가 윈도우나 리눅스 계열 등의 일반적인 환경과 달라서 파일의 위치는 find 명령으로 찾아봤습니다.


1
2
3
4
5
6
7
$ cd /
$ find -name 'postgresql.conf'
find: ./.dbus: Permission denied
./volume1/.@plugins/AppCentral/postgresql/pgha/doc/slaveDB/postgresql.conf
./volume1/.@plugins/AppCentral/postgresql/pgha/doc/masterDB/postgresql.conf
./volume1/PostgreSQL/postgresql.conf
./share/PostgreSQL/postgresql.conf
cs


1
2
3
4
5
6
$ find -name 'pg_hba.conf'
find: ./.dbus: Permission denied
./volume1/.@plugins/AppCentral/postgresql/pgha/doc/slaveDB/pg_hba.conf
./volume1/.@plugins/AppCentral/postgresql/pgha/doc/masterDB/pg_hba.conf
./volume1/PostgreSQL/pg_hba.conf
./share/PostgreSQL/pg_hba.conf
cs


각각 다음의 위치에서 발견되었네요.


./volume1/PostgreSQL/postgresql.conf

./volume1/PostgreSQL/pg_hba.conf


postgresql.conf 파일을 수정합니다.


1
 $ vi /volume1/PostgreSQL/postgresql.conf
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
 
# - Connection Settings -
 
#listen_addresses = 'localhost'         # what IP address(es) to listen on;
listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
port = 5432                             # (change requires restart)
max_connections = 100                   # (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
cs



pg_hba.conf 를 수정합니다.


1
$ vi /volume1/PostgreSQL/pg_hba.conf
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# TYPE  DATABASE        USER            ADDRESS                 METHOD
 
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     admin                                md5
#host    replication     admin        127.0.0.1/32            md5
#host    replication     admin        ::1/128                 md5
 
host    all             all             0.0.0.0/0               md5
cs


여기에서 주의할 점이 있는데, md5 라고 명시되어있는 부분을 함부로 trust 라고 변경하면 큰일 날수 있습니다. 그냥 인터넷에서 검색해서 해보니 몇몇 블로그에선 저 부분을 그냥 trust 라고 적어놔서 그냥 따라해보니, 별도의 인증과정 없이 마구 접속이 됩니다. 큰일날뻔 했습니다. ㅠ_ㅜ



DataGrip 에서 설정해 봤습니다.






1
alter user admin with password '????????';
cs


admin 유저의 암호를 변경해주고, 꼬옥 기억을 합시다.^^