1. 설정
최초 설정의 문제는 다음과 같다.
- 사용자 : postgres라는 수퍼유저만 존재.
- 인증방식 : 시스템 아이디와 postgresql에서의 role이 동일한지 확인하는 방식으로 인증
- phpPgAdmin 설정 : 안 되어 있음.
- postgresql 서버 구동 되어있지 않음.
다시 말해서, yum 설치 직후 postgresql에는 postgres라는 사용자만 등록되어 있으며, 이 사용자로 postgresql에 접속하기 위해서는 (psql이라는 명령어를 사용한다.) 시스템에도 postgres로 로긴되어 있어야 한다. 또한 접속하기 위한 서버가 실행되지도 않았다.
각각을 해결하는 방법은 다음과 같다.
1. 계정(role)이 postgres뿐.
su
<암호입력>
su postgres
이제 postgres계정으로 시스템에 로긴한 상태가 될 것이다. 이 상태에서
createuser <새 유저 아이디(role)> -P
-P는 유저등록과 함께 패스워드를 설정하겠다는 옵션이다.
superuser인지, DB생성을 허용할지, Role생성을 허용할지 등을 묻는다.
여기까지 성공했으면 이제 psql에는 사용자(role)가 두 명이다. postgres와 방금전에 생성한 아이디까지 두 명의 사용자가 된다. 만약에 위에서 createuser로 생성한 postgresql role과 같은 아이디가 시스템에도 있다면, 시스템에서 그 아이디로 로긴되어 있는 동안 psql로 접속할 수 있다.
2. 로긴 방식이 시스템 id == postgresql role
phpPgAdmin은 id/password를 통하여 postgresql에 접근하려고 한다. 그런데 기본 설정은 시스템id와 일치하는 postgresql role이 존재하는지 확인하여 이 아이디로 로긴시키는 것이다. 이것을 수정해주기 위해서는 /var/lib/pgsql/data/pg_hba.conf 라는 파일을 수정하면 된다.
local all all ident sameuser에서 ident sameuser를 md5로 바꿔주면 된다.
3. /etc/phpPgAdmin/config.inc.php-dist를 /etc/phpPgAdmin/config.inc.php로 복사.
4. 루트 권한으로 (sudo, su -c 등은 개인 취향) service postgresql initdb, service postgresql restart 등.
댓글 없음:
댓글 쓰기