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ı?