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

#1 28/10/2015 17:17:30

guil31
Membre

Postgres 9.1 - Repercussion d'un changement de nom de domaine

Bonjour,


Je viens de changer le nom de domaine de ma machine.


Postgres 9.1 avait été installé sur mon poste lorsque j'avait encore l'ancien nom de domaine.
Le client et le serveur sont tout les deux sur mon poste.
J'utilise des scripts en python qui lancent des commandes en ligne pour exécuter des fichiers de type .sql et importer des fichiers cartographique type shp.


Avant le changement de nom de domaine aucun mot de passe n'était demandé pour ces commandes en lignes.
Depuis le changement, un mot de passe est demandé et du coup mes outils python attendent une réponse et restent bloqués.


Je ne maitrise pas du tout ces aspects de Postgres mais je suppose qu'il faudrait pouvoir redéfinir le nom du domaine qui a été pris en compte lors de l'installation de postgres sur mon poste.


Est-ce bien cela mon problème et est-ce que c'est possible de le faire sans désinstaller et réinstaller postgres?


Merci pour votre aide

Hors ligne

#2 29/10/2015 10:12:24

edlm
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Bonjour,


difficile de vous répondre en l'état, il faudrait des éléments supplémentaires, et notamment pour commencer: qu'essaie de faire exactement le script Python au moment où il demande un mot de passe (une connexion au serveur PostgreSQL) ?
Pouvez vous dire quelle est la commande qui échoue et quel est le message précisément ?


Concernant le changement du nom de domaine: quel changement avez vous fait exactement ? Pouvez vous décrire précisément le ou les changements (donnez des faux noms de domaines si vous voulez) ?


Quel est l'OS (et sa version éventuellement) ?


Il est peu probable que le problème concerne directement PostgreSQL et qu'il nécessite une quelconque réinstallation du serveur.


Éric

Hors ligne

#3 29/10/2015 11:51:28

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Voici un extrait du code qui exécute mes commandes en lignes

    p = subprocess.Popen(commande,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE, env=os.environ)
    stdout,stderr = p.communicate()

Dans commande je passe

            commande = 'psql -q -h localhost -p 5433 -U postgres -d mabase  -f "monfichier.sql"'

ou

            commande = 'shp2pgsql -d -I -s 2154 -g the_geom -W "latin1" "monfichier.shp" matable | psql -q -h localhost -p 5433 -U postgres -d mabase'

Mon outil ne plante pas mais il attend une réponse
Quand je lance ces commandes en ligne de commande en dehors du code je dois rentrer le mot de passe

Avant de changer de domaine je n'avais pas besoin de saisir de mot de passe


Concernant le changement de domaine:
Je suis sur Windows 7 Professionnel SP1
Mon entreprise a décidé de mettre à plat la messagerie et dans ce cadre tous les postes ont été changés de domaine
Pour ce faire je suis allé dans les propriétés système dans la fenêtre de modification du nom du domaine de l'ordinateur et j'ai choisi le bouton radio 'Membre d'un domaine' en indiquant un nom de domaine qui est commun à tous les employés.
Ensuite l'administrateur m'a changé mes droits pour que je puisse être administrateur sur ma machine
Suite à toutes ces manipulations je ne me connecte plus sur le même compte sur ma machine
Je garde mon ancien compte pendant encore 1 mois
Sur mon ancien compte je n'ai pas ce problème

Hors ligne

#4 29/10/2015 12:29:13

edlm
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Ok merci pour ces précisions qui permettent d'y voir plus clair sur le type de problème rencontré.


A priori il s'agit donc d'un problème d'authentification: où sont situés les scripts Python par rapport au serveur ? Sur le même host/machine ?


Jetez un oeil sur votre fichier pg_hba.conf et notamment sur les lignes relatives au rôle postgres: voir la doc à ce sujet.
Les changements intervenus sur votre réseau font que pour le serveur le client (vos scripts) ne se présentent plus de la même manière pour lui: les conditions fixées
dans le fichier pg_hba.conf ne sont plus réunies pour autoriser l'accès.


Si vous n'arrivez pas à résoudre le problème pouvez vous donner un extrait de votre fichier pg_hba.conf, au moins les lignes concernant le rôle
postgres (sachant que l'ordre étant important l'intégralité du fichier, hors commentaires, serait mieux) ?


Éric

Hors ligne

#5 29/10/2015 12:58:12

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Les scripts sont effectivement sur la même machine


Avant de poster ce message sur le forum j'étais déjà allé voir ce fichier pg_hba.conf, mais j'avoue ne pas avoir trop compris.


Ce fichier ne contient que 2 lignes non commentées
Voici un extrait de ce fichier:


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Hors ligne

#6 29/10/2015 13:29:07

edlm
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Si pg_hba.conf ne contient que ces 2 lignes non commentés cela veut dire que seuls des accès par mot de passe sont autorisés.


Comme ces mots de passe ne figurent a priori pas dans le script Python (c'est rassurant ;-)) on peut supposer qu'ils se trouvent dans
le fichier des mots de passe. C'est une possibilité, il y'en a d'autres, mais c'est la plus probable.


Compte tenu des changements intervenus ce fichier ne doit plus se trouver dans l'emplacement attendu (le répertoire personnel de l'utilisateur).
L'utilisateur sous lequel s'exécutent le ou les scripts ne doit plus être le même qu'antérieurement. Il faut probablement récupérer le fichier de l'ancien compte
utilisateur et le copier au même emplacement mais pour l'utilisateur sous lequel les scripts Python sont exécutés.


Éric

Hors ligne

#7 29/10/2015 15:52:31

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Merci
Je ne suis pas sur mon poste cet après-midi
Je regarde ca demain matin ....

Hors ligne

#8 30/10/2015 11:03:45

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Merci mille fois!


C'était bien ca le problème
Mon nouveau fichier pgpass.conf était vide, j'ai donc récupéré l'ancien et tout fonctionne

Hors ligne

#9 02/11/2015 18:01:09

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Bonjour,


Je relance le sujet car mon problème n'est pas complétement résolu...


En effet j'ai remarqué que lorsque je me reconnecte dans pgadmin, mon fichier pgpass.conf est entièrement vidé.


Pourquoi ce comportement? Et comment le contourner?

Hors ligne

#10 02/11/2015 18:12:42

edlm
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Bonjour,


probablement que l'utilisateur sous lequel vous lancez pgAdmin n'est pas le même que celui qui lance les scripts qui fonctionnent.


Après avoir essuyé un échec avec pgAdmin est ce que les scripts évoqués plus haut continuent à fonctionner ?
Si oui c'est que les scripts et pgAdmin n'utilisent pas le même fichier .pgpass et que les utilisateurs sont donc différents.


Éric

Hors ligne

#11 02/11/2015 18:20:50

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

En fait, comme mon fichier pgpass.conf est vidé, mes scripts python restent de nouveau bloqués en attente de mot de passe.
Je peux à nouveau remplacer le fichier pgpass.conf par celui que j'avais récupéré de mon ancien compte et mon script fonctionne de nouveau....
....jusqu'à ce que je me reconnecte sur pgadmin et que le fichier soit de nouveau vidé!

Hors ligne

#12 02/11/2015 18:33:58

edlm
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

C'est étonnant... Je ne connais pas pgAdmin mais je serais étonné qu'il "s'amuse" à vider le fichier .pgpass au lieu d'exploiter son contenu.
D'autant plus qu'il utilise a priroi libq qui est la librairie qui exploite .pgpass.


...


Je viens de regarder rapidement la doc de pgAdmin: est ce que vous n'auriez pas décoché la case "Store password" lorsque vous avez paramétré votre connexion ?
Dans ce cas ca semble logique que pgAdmin remette à zéro l'entrée correspondante dans le fichier .pgpass. Cochez cette case pour voir.


Éric

Hors ligne

#13 02/11/2015 18:46:55

guil31
Membre

Re : Postgres 9.1 - Repercussion d'un changement de nom de domaine

Effectivement c'est bien cela il faut cocher "Enregistrer le mot de passe" quand on se connecte dans pgadmin.

Merci

Hors ligne

Pied de page des forums