인터페이스 변경
이전 포스트에서 구동 한 PostgresQL서버는 기본 값 loopbak(127.0.0.1) 인터페이스로 구동 되었다. 외부 연결을 위해서는 서비스 리슨 인터페이스를 변경 해 줘야 한다.
Listen 인터페이스 관련 설정은 postgresql.conf 파일에 정의 돼 있다. 이전 포스트의 내용대로 설치 했을 경우 설정 파일은 /var/lib/pgsql/12/data 아래에 존재한다. 1설치 할 때의 조건에 따라 /etc/postgresql/version 디렉토리 아래에 존재할 수 도 있다.
[postgres@centos7:/home/]$ vi /var/lib/pgsql/12/data/postgresql.conf # 아래 "listen_addresses"와 "port" 값을 변경해 주면 되는데 주석처리가 돼 있으므로 파일 끝에 새 값을 삽입한다. ... 중략... #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - #listen_addresses = 'localhost' # 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) max_connections = 100 # (change requires restart) #superuser_reserved_connections = 3 # (change requires restart) #unix_socket_directories = '/var/run/postgresql, /tmp' # comma-separated list of directories # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation # (change requires restart) #bonjour = off # advertise server via Bonjour # (change requires restart) #bonjour_name = '' # defaults to the computer name # (change requires restart) # - TCP settings - # see "man 7 tcp" for details #tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; # 0 selects the system default #tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; # 0 selects the system default #tcp_keepalives_count = 0 # TCP_KEEPCNT; # 0 selects the system default ....중략... # 여기부터 파일 끝에 삽입한다. listen_addresses = '0.0.0.0' # 인터페이스가 여러개일 경우 0.0.0.0을 입력하면 모든 인터페이스가 연결을 받아들이고 # 특정 IP를 입력하면 지정한 IP로만 연결이 가능한다. port = 5432
인증 방법 설정
# 패스워드 인증을을 통한 접속 허용을 위한 설정 [postgres@centos7:/home/]$ vi /var/lib/pgsql/12/data/pg_hba.conf # 파일의 끝에 아래를 붙여넣기 한다. host all all 0.0.0.0/0 md5 #호스트를 기준으로 모든 계정을 이용해 모든 IP에서 들어오는 연결에 대해 패스워드 인증을 허용하는 설정이다.
#인터페이스 관련 설정을 변경할 경우 재기동이 필요하다. [postgres@centos7:/home/]$ /usr/pgsql-12/bin/pg_ctl -D /var/lib/pgsql/12/data -l /var/lib/pgsql/12/data/pgsql.log stop [postgres@centos7:/home/]$ /usr/pgsql-12/bin/pg_ctl -D /var/lib/pgsql/12/data -l /var/lib/pgsql/12/data/pgsql.log start
계정 생성
# 생성하는 계정에 관리자 권한을 부여할 때 [postgres@centos7:/home/]$ /usr/pgsql-12/bin/createuser psqluser --interactive createuser dataware --interactive 새 롤을 superuser 권한으로 지정할까요? (y/n) y
# 관리자 권한을 부여하지 않을 때. [postgres@centos7:/home/]$ /usr/pgsql-12/bin/createuser psqluser --interactive 새 롤을 superuser 권한으로 지정할까요? (y/n) n 이 새 롤에게 데이터베이스를 만들 수 있는 권할을 줄까요? (y/n) y 이 새 롤에게 또 다른 롤을 만들 수 있는 권한을 줄까요? (y/n) y
# SQL을 이용한 사용자 생성 [postgres@centos7:/home/]$ /usr/pgsql-12/bin/psql psql (12.4) 도움말을 보려면 "help"를 입력하십시오. postgres=# CREATE USER datauser WITH ENCRYPTED PASSWORD 'password'; CREATE ROLE postgres=#
데이터 베이스 생성
[postgres@centos7:/home/]$ /usr/pgsql-12/bin/psql psql (12.4) 도움말을 보려면 "help"를 입력하십시오. postgres=# CREATE DATABASE data OWNER data ENCODING 'utf-8'; CREATE ROLE postgres=#
접속 확인
# postgres 가 아닌 다른 계정으로 시도해본다. 원격지에서도 가능하다. root@centos7:/home/]# psql -U dataware -W -h localhost
다음과 같이 입력을 쉘이 변하면 정상 구동 중인 상태
암호: psql (12.4) 도움말을 보려면 "help"를 입력하십시오. postgres=# select * from pg_tables; schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity --------------------+-------------------------+------------+------------+------------+----------+-------------+------------- pg_catalog | pg_statistic | postgres | | t | f | f | f pg_catalog | pg_type | postgres | | t | f | f | f pg_catalog | pg_foreign_server | postgres | | t | f | f | f pg_catalog | pg_authid | postgres | pg_global | t | f | f | f pg_catalog | pg_statistic_ext_data | postgres | | t | f | f | f pg_catalog | pg_user_mapping | postgres | | t | f | f | f pg_catalog | pg_subscription | postgres | pg_global | t | f | f | f pg_catalog | pg_attribute | postgres | | t | f | f | f pg_catalog | pg_proc | postgres | | t | f | f | f pg_catalog | pg_class | postgres | | t | f | f | f ... 중략... information_schema | sql_sizing_profiles | postgres | | f | f | f | f (70개 행)
댓글을 달려면 로그인해야 합니다.