banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Thu 22 November 2018 16:39

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

QGIS: Connexion PGSQL via pgservicefile

Bonjour à tous,
Dans le cadre de la préparation d'une migration de postes de Qgis 2.18.25 à Qgis 3.4.1 (sous windows 7 et 10), je teste notamment les connexions aux bases PostgreSQL/Postgis via l'utilisation d'un service (fichier pg_service.conf dans le profil utilisateur + déclaration d'une variable personnalisée).
Si cela fonctionne parfaitement sur Qgis 2, je ne parviens pas à utiliser le service sur la 3, en suivant pourtant la même procédure.
J'ai le message d'erreur suivant :

http://image.noelshack.com/fichiers/201 … 952-pg.jpg

Quelqu'un aurait-il une idée de ce que je ne fais pas correctement svp ?
Merci par avance.

Hors ligne

 

#2 Thu 22 November 2018 19:49

haubourg
Participant assidu
Lieu: Grenoble
Date d'inscription: 7 Sep 2005
Messages: 257
Site web

Re: QGIS: Connexion PGSQL via pgservicefile

Bonsoir,
on voit pas mal de d'espaces vides ou de tabulations devant "     base" . Est-ce volontaire? Est-ce qu'enlever ces espaces rétablit le service?
Si ce n'est pas le problème
Selon les options de compilation, les options de lecture des fichiers de service par la librairie postgresql libpq peuvent être un peu différentes. Une erreur classique est que le fichier de service est enregistré avec un éditeur de texte Windows (notepad simple) qui ne sait pas gérer les retours chariots en format UNIX.
Essayez donc de sauver ce fichier avec notepad++ (par exemple), en format UNIX.
( et tenez nous au courant)

Hors ligne

 

#3 Fri 23 November 2018 09:04

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour et merci de votre retour.
Les espaces vides sont les parties que j'ai effacées, le nom réel du service est de type "nomduserveur_base".
Le fichier pg_service.conf a été créé dans Notepad++ en prenant soin de convertir les sauts de ligne en format Unix (LF).

Hors ligne

 

#4 Tue 27 November 2018 08:27

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour à tous,
Petit up si quelqu'un a une idée de ce qui cloche merci.

Hors ligne

 

#5 Tue 27 November 2018 09:54

Loïc Tapon
Participant occasionnel
Lieu: Haute-Savoie
Date d'inscription: 15 Sep 2005
Messages: 16

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour,

Je n'ai pas eu de problème pour l'utilisation des services via le pg_service.conf sous QGis 3, par contre comme la préciser haubourg, il faut bien que les sauts de ligne du fichier soit au format UNIX. (Source dans la section Warning : https://docs.qgis.org/testing/en/docs/u … ction-file)

Sous Notepad++ vous pouvez convertir le fichier comme ceci (désolé c'est en anglais) :https://i.stack.imgur.com/swwHD.png
Pour la version francisée, c'est le menu "Edition" > "Convertir les sauts de lignes" > "Convertir en format UNIX"

En espérant que cela résout votre problème.

Hors ligne

 

#6 Tue 27 November 2018 09:57

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour,
Merci de votre retour mais j'ai déjà respecté cette étape (le même fichier de configuration me permet bien de déclarer un service sous Qgis 2.18.25) et pour autant, cela ne fonctionne pas, l'utilisateur et le mot de passe me sont demandés.

Hors ligne

 

#7 Tue 27 November 2018 12:02

Loïc Tapon
Participant occasionnel
Lieu: Haute-Savoie
Date d'inscription: 15 Sep 2005
Messages: 16

Re: QGIS: Connexion PGSQL via pgservicefile

Bizarre, chez moi, Qgis 2.18 et 3.4 fonctionnent tous les deux avec le pg_service.conf sur le même PC, par contre sous Windows 7.

Est-ce que les Qgis sont installés sur les mêmes machines  ? Ou Qgis 2.18 sous Windows 7 et Qgis 3.4 sous Windows 10 (ou inversement) ?
Est-ce qu'il vous demande le mot de passe de connexion quand vous créez un projet Qgis sous 2.18 avec une couche chargée par le pg_service et que vous l'ouvrez sous Qgis 3.4 ?

Hors ligne

 

#8 Tue 27 November 2018 13:39

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Je réalise les tests sur ma machine en W7 avec les 2 versions de Qgis installées.

Est-ce qu'il vous demande le mot de passe de connexion quand vous créez un projet Qgis sous 2.18 avec une couche chargée par le pg_service et que vous l'ouvrez sous Qgis 3.4 ?


la réponse est non le projet s'ouvre sans soucis.
Pourriez-vous me dire ce que vous avez comme définition de variable d'environnement système et utilisateur PGSERVICEFILE ainsi que la localisation de votre fichier pg_service.conf svp ?

[EDIT]
J'ai trouvé ce qui ne collait pas. J'avais créé un ficher pg_service.conf pour le coller dans le profil utilisateur de Qgis 3.4.1 mais celui-ci entrait en conflit avec celui de la 2.18 et la variable d'environnement n'acceptait pas les 2 déclarations de fichiers. En faisant pointer sur un fichier unique, cela fonctionne !
Merci de vos contributions.

Dernière modification par chanteclair (Tue 27 November 2018 13:43)

Hors ligne

 

#9 Tue 27 November 2018 14:05

Loïc Tapon
Participant occasionnel
Lieu: Haute-Savoie
Date d'inscription: 15 Sep 2005
Messages: 16

Re: QGIS: Connexion PGSQL via pgservicefile

Ah oui, je n'ai qu'une seule variable d’environnement PGSERVICEFILE qui pointe sur un dossier quelconque.

Hors ligne

 

#10 Tue 03 December 2019 11:20

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour à tous,
Je remonte ce sujet pour un nouveau problème de connexion au fichier pg_service.conf, mais les raisons sont apparemment différentes (pas de versions multiples de Qgis sur la machine cette fois).
Pour faciliter le déploiement de ce fichier sur plusieurs postes, il a été décidé de coller le fichier en question dans le répertoire par défaut de qgis3.
Dans les variables d'environnement système, j'ai donc déclaré la variable PGSERVICEFILE pointant sur le fichier via la valeur suivante

Code:

%USERPROFILE%\AppData\Roaming\QGIS\QGIS3\profiles\default\pg_service.conf

.
La même variable a été ajoutée aux variables utilisateurs Windows ainsi qu'en variable d'environnement Qgis via le menu Préférences\Options\Système.
Après redémarrage de la machine, lors de la déclaration du service voulu dans la connexion PGSQL, j'ai un message

Code:

service file "%USERPROFILE%\AppData\Roaming\QGIS\QGIS3\profiles\default\pg_service.conf" not found

.
Si je copie/colle cette url dans un explorateur Windows, cela m'ouvre bien le fichier en question.
La variable %USERPROFILE% est censée remplacer C:\Users\Nomdel'utilisateur\
Je ne parviens pas à identifier où est le blocage.
Si quelqu'un a une idée, je suis preneur.
Merci.

Dernière modification par chanteclair (Tue 03 December 2019 11:21)

Hors ligne

 

#11 Wed 04 December 2019 10:39

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Après une commande

Code:

echo %PGSERVICEFILE%

, Windows retourne bien la valeur affectée à la variable.
J'en déduis donc que c'est Qgis le fautif et qu'il ne lit pas correctement la variable ou que la déclaration ne lui convient pas.
Mais où/comment ?

Dernière modification par chanteclair (Wed 04 December 2019 10:39)

Hors ligne

 

#12 Thu 05 December 2019 15:37

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

J'ai enfin trouvé le problème.
Je partage ici la solution pour ceux qui pourraient en avoir besoin.
Apparemment, QGIS ne supporte pas la déclaration d'une variable d'environnement de type %MA_VARIABLE% dans Préférences\Options\Système.
Pour contourner le problème, il faut initialiser cette variable, au démarrage de QGIS dans le fichier qgis.bat qui se trouve dans le répertoire d'installation type C:\Program Files\QGIS 3.10\bin en rajoutant une ligne du type :

Code:

set MAVARIABLE=%USERPROFILE%\AppData\Roaming\QGIS\QGIS3\profiles\default\monfichier.conf

Ajouter cette variable dans les variables d'environnement Windows reste indispensable.
Cordialement.

Hors ligne

 

#13 Tue 11 February 2020 12:49

Remi.M
Juste Inscrit !
Date d'inscription: 10 Oct 2014
Messages: 8

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour Chanteclair,

Merci de m'avoir redirigé sur ce sujet. Si je comprends le résultat final de ces manips c'est l'ouverture d'une connexion PostgreSQL avec des informations de connexion et d'authentification  pré-renseignées?

Hors ligne

 

#14 Tue 11 February 2020 15:16

chanteclair
Participant assidu
Lieu: Pau
Date d'inscription: 3 Jan 2007
Messages: 725

Re: QGIS: Connexion PGSQL via pgservicefile

Bonjour,
Le pgservicefile permet de stocker plusieurs connexions différentes avec des autorisations différentes (gérées elles par PGSQL).
L'avantage est que la connexion PGSQL à déclarer dans Qgis se résume seulement à un nom de service (pas d'IP ou de nom de serveur, de n° de port...) et si vous transmettez un projet Qgis, aucun mot de passe ne sera stocké en clair dans celui-ci.
Pour mon cas, le fichier contient 5 profils de connexion différents. Quand un nouvel utilisateur souhaite accéder à une base, selon ses droits, j'ai juste à lui fournir le nom du service à déclarer dans Qgis. Le fichier est quant à lui déployé sur sa machine automatiquement par notre service informatique à un endroit qui n'est pas accessible aux utilisateurs.
Cordialement.

Hors ligne

 

Pied de page des forums

Powered by FluxBB