Client kimlik doğrulaması (authentication ), pg_hba.conf olarak adlandırılan ve $PGDATA’da depolanan bir yapılandırma dosyası tarafından kontrol edilir. (HBA, host-based authentication anlamına gelir.) pg_hba.conf dosyası varsayılan olarak initdb aşamasında $PGDATA dizininde oluşturulduğunu söyledik eğer istersek hba_file parametresi ile başka bir dizinde belirtebiliriz.
Dosyada ki her kayıt bağlantı tipi, client ip adres aralığı(bağlantı tipi için uygunsa), veritabanı adı, kullanıcı adı ve bu parametrelerle eşleşen kimlik doğrulama(authentication) yöntemini belirtir. Dosyadaki kayıtlar aşağıdaki örnekler gibi birkaç farklı biçimde olabilir.
local database user auth-method [auth-options] host database user address auth-method [auth-options] hostssl database user address auth-method [auth-options] hostnossl database user address auth-method [auth-options] hostgssenc database user address auth-method [auth-options] hostnogssenc database user address auth-method [auth-options] host database user IP-address IP-mask auth-method [auth-options] hostssl database user IP-address IP-mask auth-method [auth-options] hostnossl database user IP-address IP-mask auth-method [auth-options] hostgssenc database user IP-address IP-mask auth-method [auth-options] hostnogssenc database user IP-address IP-mask auth-method [auth-options]
- local : Bu kayıt, Unix domain soketleri kullanan bağlantı girişimleriyle eşleşir. Bu tür bir kayıt olmadan, Unix domain soket bağlantılarına izin verilmez dolayısıyla localhost’dan gelen isteklerde başarısız olur.
- host : TCP/IP protokolü ile veri tabanına bağlantı kurmak isteyen clientlar için kural tanımlamayı sağlar.
- hostssl : TCP/IP protokolü kullanılarak sadece SSL bağlantı taleplerine karşılık vermek için kullanılan tanımlamadır. Bu seçeneği kullanmak için sunucu SSL desteği ile oluşturulmalıdır. SSL yapılandırma parametresi ayarlanarak etkinleştirilmelidir. Aksi takdirde, hostssl kaydı, herhangi bir bağlantıyla eşleşemeyeceğine dair bir uyarı loga yazılması dışında yok sayılır.
- hostnossl : SSL kullanmadan sadece TCP/IP üzerinden gelen bağlantı taleplerini karşılamak için kullanılan tanımlamadır.
- hostgssenc : Bu kayıt, TCP / IP kullanılarak yapılan bağlantı girişimleriyle eşleşir, ancak yalnızca bağlantı GSSAPI şifrelemesiyle yapıldığında gerçekleşir. Bu seçenekten yararlanmak için sunucu GSSAPI desteği ile oluşturulmalıdır. GSSAPI şifrelemesiyle kullanılmak üzere desteklenen authentication yöntemlerinin gss, reject ve trust olduğunuda bilmeliyiz.
- hostnogssenc : Bu kayıt türü, hostgssenc’in ters davranışına sahiptir; yalnızca GSSAPI şifrelemesini kullanmayan TCP / IP üzerinden yapılan bağlantı girişimleriyle eşleşir.
NOT : Sunucu, listen_addresses yapılandırma parametresi için uygun bir değerle başlatılmadıkça TCP / IP bağlantıları mümkün olmayacaktır, çünkü varsayılan davranış TCP / IP bağlantılarını yalnızca local loopback adresinde localhost’da dinlemektir. (continue reading…)