Autoriser la connexion à un serveur PostgreSQL depuis le réseau local

Le problème est simple : je dispose d’une machine faisant tourner un serveur PostgreSQL 8.3.6 et je souhaiterais pouvoir m’y connecter depuis une machine distante de mon réseau local…

En fait il y a 2 fichiers à modifier dans la configuration de PostgreSQL :

1) pg_hba.conf
host all postgres 192.168.0.0/24 trust

Vous autorisez ici n’importe quelle machine du réseau local 192.68.0.x à vous connecter à votre serveur en tant que postgres et sans fournir de mot de passe.

On peut être plus restrictif et autoriser une seule machine, par exemple :
host all postgres 192.168.0.10/32 trust

2) postgresql.conf

Ici il faut changer le paramètre listen_addresses (par défaut il est sur localhost).

listen_addresses = '*'

Cela signifie que si mon serveur à une adresse IP publique 88.89.90.91, je pourrais me connecter avec par exemple la commande :
psql -U postgres -h 88.89.90.91

On peut aussi être plus restrictif et indiquer quelle adresse pourra être spécifiée par le client appelant :
listen_addresses = 'localhost, 192.168.0.100'

Ici si j’essaye de me connecter par :
psql -U postgres -h 88.89.90.91
cela ne fonctionnera pas, je serais obligé d’utiliser, depuis ma machine distante :
psql -U postgres -h 192.168.0.100

Ne pas oublier de recharger la configuration de PostgreSQL :
/etc/init.d/postgresql reload.

Vus : 493
Publié par Marco : 47