다음 이전 차례

6. 포스트그레스 유저 만들기

JDBC 로 연결을 할 때 새로운 유저명과 패스워드를 주고 싶을 때가 있을 것이다. 이를 위해 포스트그레스의 유저와 유저에 대한 패스워드를 만드는 방법을 간단히 소개 하겠다.

먼저 포스트그레스의 슈퍼 계정(DBA)를 "postgres" 라고 가정하자.

여기서는 데이터베이스의 새로운 유저를 생성하고 그 유저의 데이터베이스를 생성할 것이다. 순서는 다음과 같다.

1. postgres 계정에 패스워드를 생성한다. 이를 위해 포스트그레스의 특별한 데이터베이스인 "template1" 에 접속한다. 패스워드를 "123qwe" 라고 가정한다.

postgres]$ psql template1
.......
template1=>alter user postgres with password '123qwe';
ALTER USER
template1=>\q
postgres]$ 

2. "pg_hba.conf" 파일을 수정한다. 만약, DB 서버로 접속하려는 자신의 Host 의 IP 가 "210.110.144.169" 이면 다음처럼 수정한다.

 local  all                                     crypt 
 host   all   127.0.0.1        255.255.255.255  crypt
 host   all   210.110.144.169  255.255.255.255  crypt

참고로 host 로 시작하는 라인은 DB 서버에 접근하려는 클라이언트를 제어하려 한다. 그러 므로 DB 서버의 IP 를 주는 것이 아님을 주의하기 바란다. 또한 "crypt"는 DB 서버로의 접 근 제어 메소드이므로 "crypt"를 적용한 후부터는 DB서버로의 접속을 위해 계정과 패스워 드가 필요하다.

3. 다시 포스트그레스 슈퍼계정으로 "template1" 데이터베이스에 접속한 후 새로운 데이터베 이스 유저를 생성한다. 새로 생성할 유저를 "nogadax" 라고 가정하며 이 유저에게 데이터베 이스를 생성할 수 있는 권한을 줄 것이며 이 옵션은 "createdb" 이다. 기타 "createuser" 라 는 옵션도 있는데 이 옵션은 다른 유저를 생성할 수 있는 권한을 준다. 또한, "template1" 에 접속을 위한 옵션 "-u"를 주어야 하며 옵션을 준 후부터는 계정과 패스워드를 묻는다. 이 옵션을 주는 이유는 pg_hba.conf 에 "crypt" 접근 제어 메소드를 주었기 때문이다.

postgres]$ psql -u template1
Username : postgres
Password :
.........
template1=> create user nogadax with password 'qwert' createdb ;
CREATE  USER
template1=>\q
postgres]$

4. 생성된 nogadax 유저로 template1 데이터베이스에 접속한 뒤 "nogadax"의 데이터베이스 를 생성하자. 데이터베이스명은 "test" 라고 가정한다.

postgres]$ psql -u template1
Username : nogadax 
Password :
..............
template1=>create database test;
CREATE DATABASE 
template1=>\q
postgres]$ psql -u test
Username : nogadax 
Password :
................
test=> \q
postgres]$

다음 이전 차례