Pg_hba.conf dosyasında aynı PostgreSQL yerel kullanıcısı için eş ve md5 kimlik doğrulamasını etkinleştirebilir miyim?


14

Bir PostgreSQL (süper) kullanıcının "eş" veya "md5" kimlik doğrulama yöntemleriyle, tercihen her iki durumda da yerel Unix etki alanı yuvaları kullanılarak doğrulanmasına izin vermek istiyorum. Sorun pg_hba.conf içindeki girişlerin sıralaması önemlidir ve ilk eşleşme uygulanacaktır.

Neyim var:

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer
  local   all        all                 md5

Ne istiyorum (geçersiz sözdizimi):

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer-or-md5
  local   all        all                 md5

İşte bunu kullanmak istediğimiz çevre hakkında daha fazla bilgi:

Bu belirli sunucuda, tüm veritabanları nispeten küçüktür (her biri <10MB veri) ve salt okunurdur. Her gece harold süper kullanıcısı tarafından düşürülür ve yeniden yaratılır. harold da bir sistem hesabı, bu yüzden "eş" şifresiz cronjobs vb için güzel çalışıyor. Sonra veritabanlarına erişen bir web arayüzü var: bu md5 kimlik doğrulama kullanır (sistem kullanıcı web sunucusu, pg kullanıcı adı, şifre ve db adı tarafından sağlanır ziyaretçiler). Şimdi, harold kullanıcısının web arayüzü üzerinden de oturum açmasına izin vermek istiyorum. Bu, harold için "eş" ayarı nedeniyle başarısız olur.

Geçerli geçici çözüm, web arabiriminin TCP üzerinden bağlanmasına izin vermektir.

# TYPE    DATABASE   USER      ADDRESS        METHOD
  host    all        all       127.0.0.1/32   md5
  host    all        all       ::1/128        md5

ilk örnekteki yerel girişlere ek olarak. Bu işe yarıyor, ama burada da yerel soketleri kullanmayı tercih ediyorum - performans için ve bunun doğru bir şey gibi göründüğü bir bağırsak hissi nedeniyle.

Mümkün mü? Bizim için daha iyi çözümler var mı?

Yanıtlar:


10

Bir göre benzer StackOverflow soru , cevap aynı tip, veri tabanı, kullanıcı ve adresi için kimlik doğrulaması iki tür etkinleştiremezler hayır.

StackOverflow sorusu .pgpasskullanıcının ana dizininde bir dosya kullanmanızı ve md5 kimlik doğrulamasını kullanmanızı önerir , ancak bunun cron işleri için işe yarayacağından emin değilim.


Eğer cronjob ana dizininde .pgpass olan aynı kullanıcıdan geliyorsa çalışacaktır.
Andrei Mikhaltsov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.