Sur un ordinateur partagé, j'ai un projet QGIS qui se connecte à une base de données PostGIS qui contient mes données. Si un utilisateur souhaite accéder aux couches à partir de la base de données, il doit entrer les informations d'identification de la base de données, donc c'est OK.
Cependant, j'ai déjà connecté et importé des couches de ma base de données dans QGIS, et les ai manipulées dans QGIS (options de style basées sur les métadonnées, etc.) ... Quiconque ouvre mon projet QGIS peut afficher ces couches dans QGIS, et peut donc voir les données que je souhaite être protégées dans ma base de données.
Existe-t-il un moyen de protéger par mot de passe mon projet QGIS?
Réponses:
Votre meilleur pari sera de ne pas enregistrer les informations d'identification de la base de données dans votre projet (QGIS vous donne même un avertissement sur le danger potentiel de l'enregistrement de vos informations d'identification lorsque vous ajoutez la base de données pour la première fois).
Lorsque vous ouvrez le projet, vous serez immédiatement invité à saisir vos informations d'identification avant le rendu des couches de la base de données.
Vous pouvez également:
Pour suivre le danger de l'enregistrement de vos informations d'identification de base de données dans QGIS, consultez cette question . Il est trivial pour quiconque ayant la moindre curiosité de voir vos informations d'identification en texte clair.
la source
username=foo password=bar
. Pour autant que je puisse voir, le problème est que ma base de données de test vient d'utiliser le login / mot de passe administrateur, c'est-à-dire postgres / postgres. Après avoir décidé d'utiliser la pile PostGIS / QGIS, j'ai changé le mot de passe. Bien que vous n'ayez pas entré le nom d'utilisateur / mot de passe correct dans QGIS, vous avez bloqué l'accès aux couches que j'avais importées avec le mot de passe mis à jour, pour une raison quelconque, les couches plus anciennes (importées avec la configuration postgres / postgres) étaient OK car les informations d'identification ont été enregistrées dans la base de données.Il y avait une question similaire à laquelle j'ai répondu ici . Je ne suis pas allé trop loin dans la mise en place d'une idée sur la façon de créer le formulaire de connexion, bien qu'une grande partie de la logique soit là.
Si vous pouvez faire confiance à vos utilisateurs pour ne pas essayer d'entrer dans votre code python (ou compiler en un .exe pour le rendre encore plus difficile), vous pouvez créer un script qui ouvrira le projet avec les couches chargées dedans, ou un projet vide s'ils ne sont pas en mesure de fournir les informations d'identification correctes.
Il a été question de vérifier les informations par rapport à un serveur pour une méthode plus sécurisée, que vous pourriez implémenter dans votre instance Postgres / PostGIS. Vous pouvez trouver comme un stopgap plus simple pour coder votre nom d'utilisateur et un mot de passe haché dans votre code python qui alimente une API pour vérification. Laissez donc votre serveur faire la comparaison au lieu de votre code de bureau. Stocker votre mot de passe haché localement n'est pas le moyen le plus sûr de faire les choses, mais selon votre algorithme de hachage, il pourrait être assez difficile de le casser .
En fin de compte, il est probablement plus sûr de simplement fournir vos informations d'identification à chaque fois, sauf si vous savez que les autres utilisateurs ne sont pas assez avertis en informatique pour comprendre l'une des méthodes automatisées que vous fournirez.
la source