pgpass 파일이 있는데도 PostgreSQL 비밀번호를 계속 묻는 이유
libpq 비밀번호 파일은 운영체제별 기본 위치가 다릅니다. Unix에서는 그룹·다른 사용자에게 접근을 허용한 권한이면 파일을 무시할 수 있습니다. 파일이 있다는 사실만으로 현재 프로세스가 읽는다고 보지 않습니다.

- 파일 위치와 접근 권한이 맞아야 사용됩니다
- 연결 조건과 첫 일치 항목을 확인합니다
- 자동화 실행 사용자도 구분합니다
파일 위치와 접근 권한이 맞아야 사용됩니다
Unix의 기본 파일은 사용자 홈의 .pgpass이며, Windows는 사용자 프로필의 %APPDATA%/postgresql/pgpass.conf입니다. 다른 파일은 연결 매개변수 passfile 또는 환경변수 PGPASSFILE로 지정할 수 있습니다. Unix는 그룹·다른 사용자의 접근을 금지해야 하며 보통 권한 0600을 사용합니다. 권한이 더 느슨하면 파일을 무시합니다. Windows에는 이 Unix 권한 검사와 같은 특별 검사가 적용되지 않습니다.
연결 조건과 첫 일치 항목을 확인합니다
호스트·포트·DB·사용자가 실제 연결과 맞는지 대조합니다. 와일드카드가 있으면 더 구체적인 항목을 앞에 두는 순서도 검토합니다. 구분 기호가 들어간 값의 이스케이프 조건을 읽되 비밀번호를 화면이나 로그에 출력하지 않습니다.
자동화 실행 사용자도 구분합니다
내 계정 터미널에서 성공해도 작업 스케줄러나 서비스는 다른 사용자와 파일 경로를 쓸 수 있습니다. 별도 파일을 지정하는 방식과 권한을 확인합니다. 인증 성공 뒤 파일을 소스 저장소에 추가하지 말고 사용자 전용 비밀 위치로 관리합니다.
서버 운영 실행 전 점검표
- 파일 위치와 접근 권한이 맞아야 사용됩니다
- 연결 조건과 첫 일치 항목을 확인합니다
- 자동화 실행 사용자도 구분합니다
이 가이드의 근거 문서
출처 확인일: 2026-11-04. 공식 문서에 기반한 편집 가이드이며 직접 수행한 벤치마크가 아닙니다. 비용 사례는 명시된 가정에 한합니다.
오류 제보 방법