PostgreSQL (슈퍼) 사용자가 "peer"또는 "md5"인증 방법으로 인증되도록하고 싶습니다. 두 경우 모두 로컬 Unix 도메인 소켓을 사용하는 것이 좋습니다. 문제는 pg_hba.conf의 항목 순서가 중요하고 첫 번째 일치 항목이 적용된다는 것입니다.
내가 가진 것 :
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer
local all all md5
내가 원하는 것 (잘못된 구문) :
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer-or-md5
local all all md5
이를 사용하려는 환경에 대한 자세한 내용은 다음과 같습니다.
이 특정 서버에서 모든 데이터베이스는 비교적 작으며 (각각 10MB 미만의 데이터) 순수하게 읽기 전용입니다. 해롤드 수퍼 유저가 매일 밤 삭제하고 다시 만듭니다. harold도 시스템 계정이므로 "peer"는 암호가없는 cronjob 등에서 잘 작동합니다. 그런 다음 데이터베이스에 액세스하는 웹 인터페이스가 있습니다. 방문자). 이제 해롤드 사용자가 웹 인터페이스를 통해 로그인하도록하겠습니다. 해롤드에 대한 "피어"설정으로 인해 실패합니다.
현재 해결 방법은 웹 인터페이스가 TCP를 통해 연결하도록하는 것입니다.
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
첫 번째 예의 로컬 항목 외에 이것은 효과가 있지만, 성능과 그리고 옳은 일처럼 보이는 직감 때문에 로컬 소켓을 사용하고 싶습니다.
이게 가능해? 우리에게 더 나은 해결 방법이 있습니까?