PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 20/05/2011 11:37:07

Viktorienko
Membre

Pb avec le fichier pg_hba.conf

Bonjour,

Voici quelques jours que je me bats avec le fichier pg_hba.conf.
J'ai beau cherché sur internet, je n'ai pas trouvé de solution à mon problème.

Je cherche à établir des connexions via mon réseau local à mon serveur PosgreSQL 8.4.


Mon environnement de travail :

Station de travail : Windows 7
Version de PostgreSQL 8.4
Version de Pgadmin III 1.10.5

Ma démarche jusqu'ici infructueuse :

1/ J'ai vérifié que l'option listen_adresses était active dans le fichier postgresql.conf

2/ J'ai ajouté via l'utilitaire de pgadmin III la ligne suivante au fichier pg_hba.conf :
host     all     all     192.168.1.22     trust
La machine que je veux connecter étant 192.168.1.22. Pour la méthode j'ai tout essayé : md5, trust, ident sameuser etc.

3/ Je redémarre le service PostgreSQL 8.4 depuis l'interface de gestion du PC (clic droit sur poste de travail/Gérer)

Observations :

Le service s’arrête correctement, mais ne redémarre plus.
Par ailleurs, la ligne rajoutée n'est plus visible depuis le petit utilitaire de pgadmin qui édite le pg_hba.conf ; mais la ligne est toujours présente dans le fichier !!

Après moult tests, je me suis aperçu que le fait de rajouter une ligne au fichier pg_hba.conf faisait systématiquement planter le serveur à son démarrage !

Auriez-vous un conseil à me prodiguer ?

Merci d'avance pour votre aide et expertise ...

Cordialement,
Bruno

Dernière modification par Viktorienko (20/05/2011 11:39:35)

Hors ligne

#2 20/05/2011 11:48:18

peyo
Membre

Re : Pb avec le fichier pg_hba.conf

Viktorienko a écrit :

2/ J'ai ajouté via l'utilitaire de pgadmin III la ligne suivante au fichier pg_hba.conf :
host     all     all     192.168.1.22     trust
La machine que je veux connecter étant 192.168.1.22. Pour la méthode j'ai tout essayé : md5, trust, ident sameuser etc.

Il doit falloir rajouter le masque CIDR, la ligne est erronée, ce doit être pour  ça qu'elle n'apparait pas dans pgadmin et que le serveur ne démarre pas.
Essaye avec
host     all     all     192.168.1.22/32     trust
et joue avec la taille du masque pour étendre les connections à ton sous-réseau.
par exemple avec
host     all     all     192.168.1.0/24     trust
tu donnes accès au serveur à toutes les ips de la forme 192.168.1.x

Dernière modification par peyo (20/05/2011 11:59:30)

Hors ligne

#3 20/05/2011 11:55:03

Marc Cousin
Membre

Re : Pb avec le fichier pg_hba.conf

Et ne pas hésiter à lire le fichier de log (dans pg_log, dans le répertoire de postgres). Il y a probablement l'explication de ce qui ne lui plait pas.


Marc.

Hors ligne

#4 20/05/2011 12:41:35

Viktorienko
Membre

Re : Pb avec le fichier pg_hba.conf

Vos deux réponses m'ont été d'un grand secours !

D'une, dans les fichiers log, il y avait une histoire de masque  (que je pensais optionnelle) qui était mentionnée !
J'ai donc suivi votre conseil, et en ajoutant le masque 255.255.255.255 à ma ligne initiale, çà a parfaitement fonctionné !!!

Donc pour résumer dans mon cas la solution était :
host     all     all     192.168.1.22     255.255.255.255     trust

Remarque :
Pour autoriser plusieurs connexions, l'écriture suivante n'a pas fonctionnée :

host     all     all     192.168.1.1/22     255.255.255.255     trust

Pour résoudre ce pseudo-problème j'ai répété les lignes et tout fonctionne très bien !

host     all     all     192.168.1.1     255.255.255.255     trust
host     all     all     192.168.1.2     255.255.255.255     trust
...

Un grand MERCI pour votre aide, pertinente et rapide !

Bonne journée,
Cordialement,
Bruno

Dernière modification par Viktorienko (20/05/2011 12:42:29)

Hors ligne

#5 20/05/2011 12:46:44

Marc Cousin
Membre

Re : Pb avec le fichier pg_hba.conf

C'est normal que la ligne host     all     all     192.168.1.1/22     255.255.255.255     trust n'ait pas fonctionné:
/22 c'est ce qu'on appelle la notation CIDR. L'ancienne notation, c'est la notation 'netmask' (les listes de 255.x)

Le 22 correspond au nombres de bits à 1 dans le netmask. En notation 255.x, ça correspond à 255.255.252.0. /32 correspond à 255.255.255.255 (tous les bits à 1).

On ne peut évidemment pas mixer notation CIDR et notation netmask dans la même ligne: c'est l'un ou l'autre.

Je vous conseille, pour comprendre cela, de regarder comment fonctionnent les netmasks en IPV4.


Marc.

Hors ligne

#6 20/05/2011 14:59:27

Viktorienko
Membre

Re : Pb avec le fichier pg_hba.conf

Effectivement, après une rapide biblio sur la différence entre CIDR et Netmask, je viens d'essayer ceci :

host     all     all     192.168.0.0/16     trust

"ET CA COMMUNIQUE" pour reprendre une expression de Rodolphe (Free)...

Décidément je vais dormir moins bête ce soir...

Merci en tout cas pour ces précieux conseils !

Hors ligne

Pied de page des forums