Simplifiez le processus d'authentification PostGIS à partir de QGIS


9

Dans QGIS, j'ai un projet avec des données provenant de diverses (~ 15) bases de données PostGIS, sans informations d'identification de connexion (authentification utilisateur / pwd) stockées pour chacune des connexions, comme indiqué ci-dessous.

entrez la description de l'image ici

Désormais, lorsqu'un autre utilisateur ouvre le projet, il (ou elle) doit saisir les informations d'identification pour CHAQUE base de données utilisée:

entrez la description de l'image ici

Je crains fortement qu'aucun de mes utilisateurs n'accepte légitimement d'entrer ses informations d'identification 15 fois (mais dans un environnement d'entreprise avec potentiellement des centaines d'utilisateurs, l'acceptation est la clé du succès).

Donc, deux questions se posent pour moi:

  • existe-t-il un moyen de suggérer le nom d'utilisateur en fonction de la variable de projet globale user_account_nameet
  • existe-t-il un moyen de dire à QGIS d'utiliser également les informations d'identification entrées pour la première connexion db pour toute autre connexion?

Je ne peux pas estimer si ce serait beaucoup de modifier la boîte de dialogue «Saisir les informations d'identification» comme proposé ci-dessous, mais est-ce possible?

entrez la description de l'image ici


donc seul le "royaume" change tandis que toutes les autres variables restent les mêmes?
LaughU

oui, dans le réel, seul le 'dbname' est en train de changer. tout est sur le même serveur.
Jochen Schwarze

5
PostGIS est l'extension spatiale. Vous avez plus d'une douzaine de bases de données PostgreSQL . Bien que vous puissiez bricoler un kludge, vous devriez vraiment avoir une grande base de données. Se connecter à plus de trois n'est qu'une mauvaise conception d'application / base de données.
Vince

3
Très utile ... Désolé que mon anglais ne soit pas assez bon pour préciser que ma question ne concerne pas la conception d'applications / de bases de données. Et au fait, j'ai toujours pensé que PostGIS implique PostgreSQL, et que dans QGIS nous établissons des connexions PostGIS (voir capture d'écran ci-dessus). Alors que certains postgres disent que c'est une bonne pratique de distribuer différents contenus dans différentes bases de données lorsque cela est possible, permettez-moi de participer d'où vous savez que la connexion à plus de trois bases de données est une mauvaise conception d'application? Veuillez fournir la référence de la littérature correspondante! Et pourquoi trois?!
Jochen Schwarze

1
Je ne peux pas vous indiquer la littérature, mais une bonne solution pourrait être d'utiliser des schémas séparés dans la même base de données.
bugmenot123

Réponses:


7

QGIS dispose d'un système d'authentification intégré . Pour parler simplement, vous avez une base de données protégée avec toutes vos informations d'identification, stockée dans un qgis-auth.dbfichier, que vous pouvez envoyer à quelqu'un d'autre, qui connaît un mot de passe principal:

 dossier .qgis

Lorsque vous créez une nouvelle connexion PostGIS, au lieu de taper votre identifiant / mot de passe, vous pouvez le sélectionner qgis-auth.db(chaque paire identifiant / mot de passe a un nom convivial).

Configurer la connexion PostGIS dans QGIS avec le système d'authentification

À titre d'exemple, j'ai un projet QGIS qui contient de nombreuses couches. Chaque couche est une connexion à une base de données PostGIS distante. Chaque base de données a son propre utilisateur. Lorsque j'ouvre ce projet, je dois imprimer une fois un mot de passe principal et toutes les couches (connexions db) commencent à fonctionner.

Je peux envoyer ce projet à mon collègue, en fournissant mon qgis-auth.dbdossier. Au préalable, je peux supprimer certaines informations d'identification que je ne souhaite pas partager de ce fichier.

Après que mon collègue ait mis qgis-auth.dbdans son .qgisdossier (il peut faire une sauvegarde de son propre fichier auparavant), il ouvre le projet, entre le mot de passe principal et tout fonctionne.

Vous entrez un mot de passe principal une fois par session.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.