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
.