J'ai besoin d'accéder à une base de données postgresql à partir d'une machine distante sur un VPS de DigitalOcean sous 12.10 et postgresql 9.1.
Comment puis-je faire cela? J'ai remarqué que le port 5432 est fermé, comment puis-je l'ouvrir?
J'ai besoin d'accéder à une base de données postgresql à partir d'une machine distante sur un VPS de DigitalOcean sous 12.10 et postgresql 9.1.
Comment puis-je faire cela? J'ai remarqué que le port 5432 est fermé, comment puis-je l'ouvrir?
Réponses:
Pour ouvrir le port 5432, éditez votre /etc/postgresql/9.1/main/postgresql.conf
et changez
listen_addresses='localhost'
à
listen_addresses='*'
et redémarrez votre SGBD
invoke-rc.d postgresql restart
maintenant vous pouvez vous connecter avec
$ psql -h hostname -U username -d database
si vous ne parvenez pas à vous authentifier, vous devez donner à votre utilisateur les droits d'accès à votre base de données.
Modifier votre
/etc/postgresql/9.1/main/pg_hba.conf
et ajouter
host all all all md5
(Ceci est pour un large accès ouvert. Pour un contrôle plus strict, consultez la documentation de pg_hba.conf et ajustez-le selon vos besoins).
Ci-après vous avez besoin aussi d'un rechargement
invoke-rc.d postgresql reload
Je n'ai pas besoin de mentionner qu'il s'agit d'une configuration de base, vous devez maintenant envisager de modifier votre pare-feu et d'améliorer la sécurité de votre SGBD.
host <database> <user> <remote_client_IPaddress>/24 md5
Cela ne fonctionne plus, si cela a déjà été le cas:
héberger tous tous * md5
Les lignes correctes possibles pour cela sont:
héberger tous tous 0.0.0.0/0 gamme md5 # ipv4
héberger tous tous :: 0/0 md5 # plage ipv6
héberger tous tous tous md5 #all ip
host all all all md5
fonctionnera-t-il correctement ? C'est correct? un problème de sécurité?
La réponse la plus votée et acceptée a de graves problèmes de sécurité. Cette méthode est désactivée par défaut pour de bonnes raisons.
Mieux utiliser la redirection de port locale avec ssh
:
ssh -L local_port:localhost:foreign_port user@server
Démarrer la redirection de port:
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(Modifiez les ports locaux et étrangers en fonction de votre configuration).
Ensuite, vous pouvez vous connecter directement à la base de données à partir de votre ordinateur local:
psql -U db_user -p local_port -l