Kimlik Doğrulama (Authentication)
pg_hba.conf : Dosyası istemci (client) doğrulama için kullanılır. Veritabanı cluster
dizininde bulunur (debian ve türevi linuxlerde apt ile hazır paketlerden kuruldu ise
/etc/postgresql/$version/main dizininde bulunur.).
initdb çalıştırılıp cluster oluşturulduğunda default pg_hba.conf dosyası cluster
dizininde oluşturulur. komutu ile yeri tespit edilebilir.show hba_file;
Hangi kullanıcının,
Hangi IP adresinin ya da adreslerinin,
Hangi veritabanına,
Hangi doğrulama,
Yöntemi ile bağlanabileceğinin kontrol edildiği konfigurasyon dosyasıdır.
Değişikliklerin aktif olabilmesi için SELECT pg_reload_conf(); komutunun çalıştırılması gerekir.
Her satırda bir kural vardır. Boş satırlar ve #yorum satırları görmezden gelinir.
Bir bağlantı talebi geldiğinde ilk satırdan itibaren kurallar tek tek kontrol edilir.
● İzin verilen ilk kuralda erişim sağlanır ve diğer kurallar okunmaz.
● Engelleyen bir kurala denk gelirse erişime izin verilmez ve diğer kuralları
okumaz.
● Özet olarak kurallar yukardan aşağıda doğru okunur. Önce gelen kuralı
uygular.
● Bağlantı kıstaslarına uygun herhangi bir kural yoksa gene erişim izni
verilmez.
● Hata loglarını postgresql log dosyasına yazar.
# Reject önce geldiği için lokal kullanıcılar dahi bağlanamaz. # Hots_TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 reject host all all 127.1.0.1/32 trust

Database : Veritabanı ismi verilebilir. “all” ile tüm veritabanlarına izin verilebilir veya sadece buraya yazılan veritabanına erişim izni verilebilir.
User : “all” ile tüm kullanıcılara izin verilebilir ya da sadece girilen kullanıcıya izin verilebilir.
Address : Bağlantı yapacak istemcinin IP adresi ya da IP adres aralığı verilebilir. 192.168.10.10/32, Sadece 192.168.10.10 IP’ li istemci bağlanabilir.
192.168.10.0/24, 192.168.10.0 network’ündeki istemciler (254 host) bağlanabilir (Detaylı bilgi için subnetting CIDR konularına bakılabilir). “all” ya da “0.0.0.0/0“ bütün IP’lerden gelen anlamında kullanılır.
Method : Kimlik doğrulama metodunu belirtir.

Bunlara ek olarak ldap, radius, cert, pam ve bsd kimlik doğrulama yöntemlerini de
desteklemektedir.
Örnek olarak;
# TYPE DATABASE USER ADDRESS METHOD # 10.71.6.0/24 network ünden tüm veritabanlarına gelen tüm kullanıcıları scram-sha-256 ile şifre doğrulama ile kabul eder. host all all 10.71.6.0/24 scram-sha-256 # Sadece 10.71.6.22 IP’sinden tüm veritabanların gelen tüm kullanıcıları şifre doğrulamaya gerek duymadan kabul eder. host all all 10.71.6.22/32 trust # Sadece 10.71.5.71 IP’ sinden HAdb veritabanına MMAM kullanıcısının bağlantı isteklerini şifre doğrulamaya gerek duymadan ile kabul eder. host HAdb MMAM 10.71.5.71/32 trust
