PostgreSQL 계정 비밀번호 분실 시 접속 방법

리눅스에서 postgres를 처음 쓰면 왜 데이터베이스와 관계 없이 postgres라는 리눅스 사용자가 생성되는지도 모르겠고 사용자 생성했는데 또 뭔 접속할 때 데이터베이스명까지 정해줘야 되고 아주 짜증이 난다.

이건 글 내용과 상관 없는 내용이긴 했는데 아무튼 정신 없이 짜증을 내다보면 사용자 계정 비밀번호도 잊어버릴 수 있다. 틀린 비밀번호를 입력하면 접속이 안 된다.

[root@localhost data]# psql -U postgres
Password for user postgres:
psql: error: FATAL:  password authentication failed for user "postgres"

이럴 땐 걱정하지 말고 pg_hba.conf 파일 수정 후 서버만 재기동하면 바로 해결할 수 있다.

PostgreSQL 비밀번호 없이 계정 접속 방법

pg_hba.conf 파일을 수정한다. pg_hba.conf 파일 경로는 설치 환경에 따라 다를 수는 있지만 대부분 /var/lib/psql/{버전}/data/pg_hba.conf 다.

[root@localhost data]# vim /var/lib/pgsql/12/data/pg_hba.conf

아래 이미지와 같은 부분을 확인하 METHOD를 trust로 변경하고 저장한다.

pg_hba.conf

postgresql 서비스를 재기동한다.

[root@localhost data]# systemctl restart postgresql-12.service

이제 비밀번호 없이 아무 계정이나 접속할 수 있다. 슈퍼 계정인 postgres로 접속해보자.

[root@localhost data]# psql -U postgres
psql (12.5)
Type "help" for help.

postgres=#

무사히 접속되면 다시 계정 비밀번호를 바꿔준다. 계속 비밀번호 없이 사용하는 건 테스트 서버에야 문제 없지만 운영 환경에선 그러면 안 된다.

postgres=# ALTER USER postgres PASSWORD 'postgres';
ALTER ROLE

비밀번호를 변경했으면 다시 pg_hba.conf 파일에서 trust로 수정한 걸 md5로 바꾸고 postgres 서버를 재시작 하고 사용한다.

pg_hba.conf

md5로 바꿔주면 다시 접속할 때 비밀번호를 묻는다.

관련 글

댓글 남기기