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.
show hba_file; komutu ile yeri tespit edilebilir.

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
Kategori seçin...