Comment configurer PostgreSQL pour accepter toutes les connexions entrantes

106

J'ai une base de données PostgreSQL que j'aimerais configurer pour accepter toutes les connexions entrantes quelle que soit l'adresse IP source. Comment cela peut-il être configuré dans le fichier pg_hba.conf? J'utilise la version 8.4 de PostgreSQL.

Fergal
la source

Réponses:

216

Utilisez simplement 0.0.0.0/0.

host    all             all             0.0.0.0/0            md5

Assurez - vous que l' listen_addressesen postgresql.conf(ou ALTER SYSTEM SET) permet les connexions entrantes sur toutes les interfaces IP disponibles.

listen_addresses = '*'

Après les modifications, vous devez recharger la configuration. Une façon de faire est de l'exécuter en SELECTtant que superutilisateur.

SELECT pg_reload_conf();
Frank Heikens
la source
cela fonctionne-t-il vraiment avec le type md5? Je pensais qu'il serait nécessaire d'utiliser le type trust...
Dan LaRocque
5
"trust" permet à tous les utilisateurs de se connecter sans mot de passe. C'est quelque chose que je n'utiliserais pas, un mot de passe est le strict minimum que vous devriez toujours utiliser. Même sur votre propre ordinateur.
Frank Heikens
1
ah, j'ai lu la question différemment - je pensais qu'il voulait dire accepter les connexions de tous les clients sans condition (pour certains bancs d'essai sans importance, peut-être). je vois ce que tu veux en venir.
Dan LaRocque
6
REMARQUE : Si votre réseau est IPv6, vous devez utiliser ::/0plutôt que 0.0.0.0/0lors de la modification du fichier pg_hba.conf.
Aron Boyette
2
Assurez-vous d' postgresavoir un mot de passe fort: sudo -u postgres psql, \password.
Adobe le
47

0.0.0.0/0 pour toutes les adresses IPv4

::0/0 pour toutes les adresses IPv6

all pour correspondre à n'importe quelle adresse IP

samehost pour correspondre à l'une des propres adresses IP du serveur

samenet pour correspondre à n'importe quelle adresse dans n'importe quel sous-réseau auquel le serveur est directement connecté.

par exemple

host    all             all             0.0.0.0/0            md5
Owen Pauling
la source
0

Configuration de tous les fichiers avec postgres 12 sur centos:

étape 1: rechercher et modifier le fichier

sudo vi /var/lib/pgsql/12/data/pg_hba.conf

appuyez sur "i" et à la ligne changer IPv4

host    all             all             0.0.0.0/0            md5

étape 2: rechercher et modifier le fichier postgresql.conf

sudo vi /var/lib/pgsql/12/data/postgresql.conf

ajoutez la dernière ligne: listen_addresses = '*': wq! (enregistrer le fichier) - étape 3: redémarrer

systemctl restart postgresql-12.service
trithucsv
la source
-6

Ajoutez cette ligne à pg_hba.conf du dossier postgres

host    all    all    all    trust

"trust" permet à tous les utilisateurs de se connecter sans mot de passe.

Client
la source
Pouvez-vous peut-être ajouter des commentaires au code? Où le mettre et comment ça marche?
Alistra
4
Bien que cet extrait de code soit le bienvenu et puisse fournir une aide, il serait grandement amélioré s'il incluait une explication sur la manière et la raison pour laquelle cela résout le problème. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, pas seulement à la personne qui la pose maintenant! Veuillez modifier votre réponse pour ajouter une explication et donner une indication des limites et des hypothèses applicables.
Toby Speight
autoriser les connexions à partir de toutes les ips n'est vraiment pas sécurisé
sandes