페이지 트리
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동



목차

PostreSQL 에서 pg_hba.conf는 아주 유용한 파일이다. 보통 PostgreSQL 슈퍼우저만이 읽을 수 있도록 해두는 것이 좋다.

$ Is -l pg_hba.conf
-r--------1 postgres postgres    3776Now 11 08:47 pg_hba.conf

pg_hba.conf 파일에서 첫번째 항의 'host'는 해당 레코드의 성격을 나타낸다.
즉, 호스트 접속과 관련된 레코드 임을 알 수 있다.
두번째 항은 접속을 허용할 데이터베이스이다. 'all'은 모든 데이터베이스를 통칭한다. 세번째 항은 접속을 허용하는 호스트의 IP 주소이다. 접속을 요청하는 호스트의 주소는 먼저 pg_hba.conf의 네번째 항의 마스크와 연산되어 IP주소와 비교된다. 따라서 192.168.1.1과 192.168.1.2등의 호스트에서의 접속을 허용하려면 MASK는 255.255.255.0로, IP 주소는 192.168.1.0으로 하면 된다. 다섯번째 항은 사용자인증 방법을 지정한다.
'trust'는 인증 절차를 거치지 않음을 나타낸다. 'ident'는 RFC 1413에 따른 ident 프로토콜에 따라 인증 절차를 거친다는 것을 뜻한다. 마지막항은 인증에서 좀 더 세부적인 사항을 지정한다.

#TYPE    DATABASE    IP_ADDRESS    MASK                    USERAUTH   MAP 
host        all                127.0.0.1         255.255.255.255     trust
host        all                192.168.1.0      255.255.255.0        ident    sameuser 

만일 허용되지 않는 호스트에서 접속을 하려면 다음과 같은 메시지가 나온다.

$psql-h free.world.co.kr linux
Connection to database 'linux' failed.
Failed to authenticate client as Postgres user 'postgres' using the default
Authentication type : be_recvauth: host-based authentication failed
$

psql에서 -h 옵션은 접속할 호스트 이름을 지정하는 데 사용된다. 만일, 원격 데이터베이스 시스템의 pg_hba.conf에 자신의 호스트가 접속할 수 있도록 되어 있다면, 자신의 시스템에서 원격 데이터베이스에 접속할 수 있다.

$psql-h free.world.co.kr mydb
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type\? For help on slash commands
type\q to quit
type\g or terminate with semicolon to execute query
You are currently connected to the database: mydb
mydb=>\!hostname
han.world.co.kr
mydb=>

물론 psql은 자신의 시스템에서 실행되고, 입력하는 질의는 원격 호스트의 postmaster 포느에 전달되어 그 결과가 다시 자신의 시스템으로 돌아오는 것이다.

따라서, 이것은 telnet으로 원격 시스템에 로긴하여 psql을 실행하는 것과 같은 결과를 가져오기는 하지만, 그 과정은 전혀 다르다. 원격 데이터베이스 접속 기능을 활용하면, 데잍베이스는 하나의 데이터베이스 서버에 두고, 실행은 원격 클라이언트의 프론트엔드 응용프로그램에서 처리함으로써 여러가지 작업 처리를 분산시키고 체계화할 수 있는 장점을 가질 수 있을 것이다.

  • 레이블 없음