20.1. Fișierul Pg_hba.conf
Autentificarea clientului este controlată de un fișier de configurare denumit în mod tradițional pg_hba.conf și este localizat într-un director cu date de cluster de baze de date. (HBA înseamnă autentificare bazată pe gazdă - autentificarea după numele gazdei). Fișierul pg_hba.conf. cu conținut standard, este creat de comanda initdb atunci când directorul de date este inițializat. Cu toate acestea, acesta poate fi plasat în altă parte; consultați parametrul de configurare hba_file.
Înregistrarea se poate face într-unul din cele șapte formate:
Valorile câmpului sunt descrise mai jos:
Gestionează conexiunile prin prize de domeniu Unix. Fără o astfel de înregistrare, conexiunile prin mufe de domenii Unix nu sunt posibile. gazdă
Gestionează conexiunile stabilite prin TCP / IP. Fișele gazdă corespund conexiunilor cu SSL și fără SSL.
remarcă
Gestionează conexiunile stabilite prin TCP / IP utilizând criptarea SSL.
Pentru a utiliza această funcție, serverul trebuie să fie construit inițial cu suport SSL. Mai mult, SSL trebuie să fie activat în momentul pornirii serverului prin setarea parametrului de configurare ssl (pentru mai multe detalii, consultați Secțiunea 18.9). hostnossl
Acest tip de intrări este opusul lui hostssl. Acesta corespunde numai conexiunilor TCP / IP fără criptare SSL. data_base
Stabilește care nume de bază de date corespund acestei înregistrări. Valoarea tuturor specifică faptul că toate bazele de date sunt potrivite. Aceeași valoare utilizată specifică faptul că această intrare se potrivește numai dacă numele bazei de date solicitate se potrivește cu numele utilizatorului solicitat. Valoarea samerole specifică faptul că utilizatorul solicitat trebuie să fie un membru al rolului cu același nume ca și baza de date solicitată. (acelasi grup este o optiune valabila dar valida samerol). Superuserii nu devin automat membri ai rolului datorita samerolei. dar numai dacă aceștia sunt membri expliciți ai rolului, direct sau indirect, și nu numai pentru că sunt superuseri. Valoarea replicării indică faptul că intrarea se potrivește dacă se solicită conexiunea de replicare (rețineți că conexiunile de replicare nu definesc o anumită bază de date). În caz contrar, acesta este numele unei anumite baze de date PostgreSQL. Mai multe nume de baze de date pot fi specificate separându-le cu virgule. Un fișier care conține nume de baze de date poate fi specificat prin plasarea semnului @ la începutul numelui său. utilizator
Specificarea unui nume care începe cu o perioadă (.) Corespunde sufixului numelui actual al nodului. Deci example.com se va potrivi cu foo.example.com (nu doar cu example.com).
Acest câmp este valabil numai pentru intrările gazdă. hostssl și hostnossl.
De asemenea, este necesară o interogare inversă pentru a realiza posibilitatea de potrivire a sufixelor, deoarece pentru a se potrivi cu șablonul trebuie să cunoașteți numele real al computerului client.
Rețineți că acest comportament este compatibil cu alte implementări de control acces bazate pe nume, cum ar fi Apache HTTP Server și TCP Wrappers.
Aceste câmpuri se aplică numai intrărilor de gazdă. hostssl și hostnossl. metoda de autentificare
Specifică metoda de autentificare atunci când conexiunea se potrivește cu această intrare. Opțiunile sunt prezentate mai jos; consultați secțiunea 20.3 pentru detalii.
Permite o conexiune necondiționată. Această metodă permite unei persoane care se poate conecta la un server cu o bază de date PostgreSQL. conectați-vă la orice utilizator PostgreSQL dorit fără a introduce o parolă și fără altă autentificare. Pentru detalii, consultați subsecțiunea 20.3.1. respinge
Respinge conexiunea necondiționat. Această caracteristică este utilă pentru "filtrarea" unor servere ale grupului, de exemplu, șirul de respingere poate respinge o încercare de a conecta un computer, cu următoarea linie care vă permite să conectați restul computerelor din aceeași rețea. MD5
Necesită clientului să furnizeze pentru autentificare o parolă dublată de algoritmul MD5. Pentru detalii, consultați Subsecțiunea 20.3.2. parolă
Necesită o parolă necriptată pentru a autentifica clientul. Deoarece parola este trimisă în text simplu prin rețea, această metodă nu ar trebui utilizată dacă rețeaua nu generează încredere. Pentru detalii, consultați Subsecțiunea 20.3.2. GSS
Utilizatorul utilizează GSSAPI pentru autentificare. Această metodă este disponibilă numai pentru conexiunile TCP / IP. Pentru detalii, consultați subsecțiunea 20.3.3. SSPI
Utilizatorul utilizează SSPI pentru autentificare. Metoda este disponibilă numai pentru Windows. Pentru detalii, consultați subsecțiunea 20.3.4. ident
Obține numele de utilizator al sistemului de operare client, comunicând cu serverul Ident și verifică dacă se potrivește cu numele de utilizator al bazei de date. Autentificarea Ident poate fi utilizată numai pentru conexiunile TCP / IP. Pentru conexiunile locale, se utilizează autentificarea de la egal la egal. Pentru detalii, consultați subsecțiunea 20.3.5. egal
Obține numele de utilizator al sistemului de operare al clientului din sistemul de operare și verifică dacă se potrivește cu numele de utilizator al bazei de date solicitate. Disponibil numai pentru conexiunile locale. Pentru detalii, consultați Subsecțiunea 20.3.6. ldap
Autentifică folosind un server LDAP. Pentru detalii, consultați Subsecțiunea 20.3.7. rază
Autentifică folosind serverul RADIUS. Pentru detalii, consultați subsecțiunea 20.3.8 cert
Autentifică utilizând certificatul client SSL. Pentru detalii, consultați subsecțiunea 20.3.9 pam
Autentifică folosind serviciul de autentificare (PAM) furnizat de sistemul de operare. Pentru detalii, consultați Subsecțiunea 20.3.10. bsd
Autentifică folosind serviciul de autentificare BSD furnizat de sistemul de operare. Pentru detalii, consultați Subsecțiunea 20.3.11.
În plus față de parametrii descriși mai jos, care se referă la diferite metode, există un parametru comun de autentificare clientcert. care pot fi specificate în orice intrare hostssl. Dacă este 1. clientul trebuie să furnizeze un certificat SSL (de încredere) adecvat, pe lângă alte cerințe privind metoda de autentificare.
Fișierul pg_hba.conf este citit în timpul pornirii și când procesul principal al serverului primește semnalul SIGHUP. Dacă editați un fișier în timp ce sistemul rulează, trebuie să trimiteți un semnal procesului postmaster (folosind pg_ctl reload sau kill -HUP) pentru a citi fișierul actualizat.
Pentru a vă conecta la o bază de date specifică, utilizatorul nu numai că trebuie să treacă toate verificările din fișierul pg_hba.conf. dar trebuie să aibă privilegiul CONNECT să se conecteze la baza de date. Dacă doriți să restricționați accesul la baze de date pentru anumiți utilizatori, este mai ușor să acordați / revocați privilegiul CONNECT. în loc să setați regulile din intrările fișierului pg_hba.conf.
Exemple de intrări în fișierul pg_hba.conf sunt prezentate în Exemplul 20.1. Consultați secțiunea următoare pentru mai multe informații despre metodele de autentificare.
Exemplul 20.1. Exemple de intrări pg_hba.conf