Ogni riga del file segue questo formato:
| Campo | Descrizione |
|---|---|
map-name |
Nome della mappa, referenziato in pg_hba.conf tramite l'opzione map= |
system-username |
Nome utente del sistema operativo (o espressione regolare) |
pg-username |
Nome utente PostgreSQL a cui viene mappato |
Le righe che iniziano con # sono commenti e vengono ignorate.
Esempio
| map-name | system-username | pg-username |
|---|---|---|
| mymap | alice | alice |
| mymap | bob | postgres |
| mymap | /^(.*)$ |
\1 |
- Le prime due righe mappano utenti specifici del sistema operativo a utenti PostgreSQL.
- L'ultima riga usa una espressione regolare: qualsiasi utente OS viene mappato all'utente PostgreSQL con lo stesso nome. Le regex devono iniziare con
/e il primo gruppo di cattura è referenziabile con\1.
Relazione con pg_hba.conf
pg_hba.conf decide se usare una mappa di identità — specificando il nome della mappa nel campo map. pg_ident.conf definisce cosa contiene quella mappa.
| TYPE | DATABASE | USER | ADDRESS | METHOD |
|---|---|---|---|---|
| local | all | all | peer map=mymap |
|
| host | all | all | 127.0.0.1 | ident map=mymap |
Metodi che lo utilizzano
| Metodo | Tipo connessione | Descrizione |
|---|---|---|
peer |
Solo Unix socket (locale) | Chiede al kernel l'identità del processo client |
ident |
TCP | Interroga un server ident esterno (RFC 1413) per ottenere l'identità del client |
Note
Il file viene riletto ad ogni
pg_reload_conf()oSIGHUP— non è necessario riavviare il server.
Se nessuna riga in
pg_hba.confusaidentopeer, il filepg_ident.confviene completamente ignorato.
Il percorso predefinito è nella stessa directory di
postgresql.conf, tipicamente$PGDATA. Il parametroident_fileinpostgresql.confne permette la personalizzazione.