pg_hba.conf에서 동일한 PostgreSQL 로컬 사용자에 대해 피어 및 md5 인증을 모두 활성화 할 수 있습니까?


14

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

첫 번째 예의 로컬 항목 외에 이것은 효과가 있지만, 성능과 그리고 옳은 일처럼 보이는 직감 때문에 로컬 소켓을 사용하고 싶습니다.

이게 가능해? 우리에게 더 나은 해결 방법이 있습니까?

답변:


10

비슷한 StackOverflow 질문 에 따르면 대답은 아니요입니다. 동일한 유형, 데이터베이스, 사용자 및 주소에 대해 두 가지 유형의 인증을 사용할 수 없습니다.

StackOverflow 질문 .pgpass은 사용자의 홈 디렉토리에서 파일을 사용하고 md5 인증을 사용하는 것이 좋지만 반드시 cron 작업에서 작동하는지 확실하지 않습니다.


cronjob이 그의 홈 디렉토리에 .pgpass를 가진 동일한 사용자의 경우 작동합니다.
Andrei Mikhaltsov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.