PostgreSQL로 클라사바 DB 환경 구축

만들 환경



다음과 같은 환경을 구축합니다.

  • 서버
    CentOS 7.2
    PostgreSQL 9.2.15
  • 클라이언트
    Windows7
    psqledit_4

  • 서버 설정



    PostgreSQL 설치 ~ 서비스 시작



    ※리포지토리에 따라서는 최신의 버전은 아닙니다만, 이번은 좋은 것으로 합니다
    ※최신 버전을 사용하는 경우는 공식 사이트로부터 다운로드합니다
    htps //w w. 포스트g sql. jp / 도 w 응 아 d

    yum으로 패키지 설치
    [root@sample ~]# yum -y install postgresql postgresql-contrib postgresql-devel
    

    DB 설정
    [root@sample ~]# /usr/bin/postgresql-setup initdb
    

    서비스 시작
    [root@sample ~]# service postgresql start
    [root@sample ~]# service postgresql status
    [root@sample ~]# systemctl enable postgresql
    

    사용자/데이터베이스 만들기



    다음과 같이 사용자와 데이터베이스를 만듭니다.


    USER
    PASSWORD
    DB_NAME


    sampleuser
    samplepassword
    sampledb



    Linux 사용자 작성
    [root@sample ~]# adduser sampleuser
    [root@sample ~]# passwd sampleuser
    ユーザー sampleuser のパスワードを変更。
    新しいパスワード:
    新しいパスワードを再入力してください:
    passwd: すべての認証トークンが正しく更新できました
    

    PostgreSQL 사용자 작성
    [root@sample ~]# su postgres
    bash-4.2$ psql
    psql (9.2.15)
    "help" でヘルプを表示します.
    
    postgres=# CREATE USER "sampleuser" CREATEDB PASSWORD 'samplepassword' LOGIN;
    CREATE ROLE
    postgres=# \q
    bash-4.2$ exit
    

    sampleuser를 owner로 한 데이터베이스 작성
    [root@sample ~]# su sampleuser
    [sampleuser@sample ~]$ createdb sampledb;
    [sampleuser@sample ~]$
    

    로컬로 연결 확인
    [sampleuser@sample ~]$ psql -U sampleuser sampledb
    sampledb=> 
    

    이것으로 로컬 환경에서 PostgreSQL 설정이 완료됩니다.
    다음은 원격으로 연결을 허용하도록 설정합니다.

    인증/액세스 제어



    필요한 것은 다음 세 가지 레이어 관점에서 설정하는 것입니다.
  • OS
  • PostgreSQL 서비스
  • DB에 대한 사용자 인증

  • 1-1. OS
    리모트로부터 PostgreSQL 서버에 액세스 하기 위해서는, TCP:5432번 포트의 통신을 허가할 필요가 있습니다
    iptables에 구멍을 뚫다

    5432번 포트 개방
    [root@sample ~]# firewall-cmd --permanent --add-port=5432/tcp
    [root@sample ~]# firewall-cmd --reload
    [root@sample ~]# iptables -L -n | grep 5432
    

    2-1. PostgreSQL 서비스
    PostgreSQL 서비스에 대한 액세스 설정은 [postgresql.conf]에 설명되어 있습니다.
    listen_addresses에서 액세스를 허용하는 IP 주소를 지정할 수 있습니다.
    listen_addresses = '*'로 설정하면 모든 네트워크에서 액세스할 수 있습니다.
    ※이번 경우는 192.168.1.0/24로부터의 통신

    [postgresql.conf] 수정
    [root@sample ~]# vim /var/lib/pgsql/data/postgresql.conf
    
    \#listen_addresses = 'localhost'
    listen_addresses = '*'
    

    3-1. DB에 대한 사용자 인증
    DB에 대한 원격 호스트로부터의 인증은 [pg_hba.conf]에 설명되어 있습니다.
    미세한 파라미터 설명은 이번에는 생략합니다.
    htps //w w. 포스트g sql. jp / 도쿠 멘 t / 9.5 / HTML / 아우 thpg-h bacon f. HTML 참조

    [pg_hba.conf] 수정
    [root@sample ~]# vim /var/lib/pgsql/data/pg_hba.conf
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    sampledb        sampleuser      192.168.1.0/24          md5
    

    수정 내용 반영 (PostgerSQL 서비스 재시작)
    [root@sample ~]# service postgresql restart
    Redirecting to /bin/systemctl restart  postgresql.service
    [root@sample ~]# service postgresql status
    

    이제 원격에서 PostgreSQL에 연결할 준비가되었습니다.

    클라이언트 설정



    이번에는 클라이언트 환경에서 원격으로 연결할 수 있는지 확인합니다.
    PostgreSQL에 접속하기 위한 클라이언트 툴로서는,
  • pgAdmin
  • PSqlEdit

  • 등을 생각할 수 있습니다. 클라이언트 툴로서는 기능이 심플한 PSqlEdit가 사용하기 쉽다고 생각합니다. (어디까지나 주관입니다)

    h tp // w w. 히호. 네. jp / a_ogawa / psq ぢ t / psq ぢ t_4010. 지 p에서 다운로드할 수 있습니다.
    적절하게 C :\Program Files\psqledit_4로 압축을 풀고 psqledit.exe를 실행하십시오.


    USER
    PASSWORD
    DB_NAME
    HOST
    PORT NO


    sampleuser
    samplepassword
    sampledb
    192.168.1.10
    5432




    또한 psqledit.exe를 실행할 때 다음과 같이 표시되면,
    h tp // w w. 히호. 네. jp/아_오가와/ぃbpq/그리고 x. htm에서 libpq.dll을 다운로드하여 psqledit.exe와 동일한 계층 구조에 배포합니다.


    다음과 같이 하면 클라이언트의 서버 연결이 완료됩니다.

    좋은 웹페이지 즐겨찾기