Configurer la base de données PostGIS et l'ouvrir dans QGIS sous Windows?

14

J'ai essayé de suivre les manuels de configuration d'une base de données PostGIS accessible aux utilisateurs de QGIS, mais pour le moment je ne comprends pas assez pour progresser?

Ma situation; Je suis un stagiaire chargé de créer une base de données PostGIS pour la numérisation d'objets verts (tels que des arbres) et d'exécuter des requêtes - comme lier une liste de rues, avec des fichiers image, à la table attributaire.

J'ai des "squelettes de fichiers de formes" (actuellement vides sans objets, juste le cadre d'attributs "où les objets géoréférencés actuels et futurs (un fichier de formes différent pour chaque type) seront collés / créés). J'espère que je peux simplement importer ces fichiers de formes de squelette dans la base de données?

La situation;

Nous travaillons dans un bâtiment séparé avec notre propre réseau local et connexion Internet avec un serveur de sauvegarde pour chaque fichier. Nous avons donc un accès aux fichiers locaux et des fichiers que nous partageons via une connexion Internet

La configuration de la base de données a été effectuée par un administrateur via un accès à distance, en utilisant les derniers fichiers d'exécution .exe de PostGIS et PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2 -1) pour ma machine 64 bits. L'administrateur m'a fourni un fichier texte avec des informations de connexion. Les manuels de formation ici sont assez déroutants car ils traitent d'Ubuntu.

Je suis bloqué car je ne sais pas où utiliser les informations de connexion que j'ai notées? Je suppose que je dois utiliser pgAdmin?

ThunderSpark
la source
C'est ainsi que j'installe PostGIS sur Windows - dans une installation simple get.enterprisedb.com/docs/… alors QGIS se connectera facilement avec le nom d'utilisateur et le mot de passe que vous avez définis.
Mapperz
1
Je conseillerais certainement d'installer pgAdmin 3 pour fonctionner avec votre base de données. Il y a maintenant un pgAdmin4, vous pouvez également chercher à l'installer en même temps, voir celui que vous préférez.
Martin Hügi
Attendez, alors où allez-vous dans QGIS, et quels fichiers dois-je installer dans le stackbuilder? Edit nvm: l'a trouvé maintenant, j'ai besoin de trouver les entrées locales d'hôte et de service que je dois faire.
ThunderSpark
Postgis installera le «serveur» requis localement, c'est ainsi que la base de données fonctionne - vous utilisez ensuite QGIS pour vous connecter «en direct» via le serveur (localhost).
Mapperz

Réponses:

23

Il semble que votre administrateur ait installé la base de données avec succès et vous ait fourni les détails dont vous aurez besoin. Ils peuvent également avoir configuré PostGIS lors de l'installation, mais sinon, vous pouvez le vérifier au fur et à mesure de ces étapes.

Demandez d'abord à votre administrateur d'installer pgAdmin, cela vous permettra d'accéder à votre base de données PostgreSQL avec une interface graphique.

https://www.pgadmin.org/download/windows.php

Ouvrir pgAdmin

Si votre PostgreSQL a été installé;

  • sur votre ordinateur, il apparaîtra comme localhost, vous devriez pouvoir double-cliquer sur «PostgreSQL (version no.) (localhost: 5432)» pour vous y connecter.

entrez la description de l'image ici

  • S'il a été installé sur le réseau, vous aurez besoin de votre administrateur pour vous faire connaître l'adresse d'hôte (si vous ne l'avez pas déjà), alors vous devrez aller dans Fichier> Ajouter un serveur et remplir les champs;

entrez la description de l'image ici

Une fois connecté, allez à Edit > New Object > New Database

Donne lui un nom. Il apparaîtra dans votre liste de serveurs.

Double-cliquez pour vous y connecter. Vérifiez le Extensionspour voir s'il listepostgis .

Si non;

Ouvrez la fenêtre SQL en cliquant sur l'icône SQL

entrez la description de l'image ici

et tapez

CREATE EXTENSION PostGIS

Appuyez sur «Exécuter la requête» - cette icône entrez la description de l'image ici

Cliquez avec le bouton droit sur la base de données dans la liste et déconnectez-vous, puis reconnectez-vous. Les extensions devraient maintenant avoirpostgis répertoriées.

Vous pouvez configurer un nouveau rôle de groupe et un rôle de connexion à ce stade, il semble que vous devez répondre aux besoins de sécurité et à vos utilisateurs sur le réseau.

Ou si vous voulez simplement le tester, vous pouvez continuer avec le rôle par défaut postgres.

Différents groupes peuvent être configurés pour avoir des autorisations différentes, par exemple administrateur et utilisateur. Les connexions utilisateur peuvent ensuite être configurées et affectées à tout groupe qui correspond au niveau d'autorisation que vous souhaitez accorder à l'utilisateur, ou vous pouvez donner accès à toutes les tables à l'administrateur, et seulement certaines aux utilisateurs, etc. Vous n'avez peut-être pas besoin d'un groupe d'administration.

Ouvrez la fenêtre SQL et exécutez ces requêtes;

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

Configurer une connexion administrateur (connecté en tant que postgres / superutilisateur)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

Configurer une connexion utilisateur (connecté en tant que postgres / superutilisateur)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

Ouvrez QGIS. Démarrez un nouveau projet.

Cliquez sur l'icône «Ajouter une couche PostGIS» dans la barre d'outils de gauche.

entrez la description de l'image ici

Cliquez sur «Nouvelle» connexion et entrez les détails de connexion comme ci-dessus (si votre base de données est locale, l'hôte l'est tout simplement localhost).

Vous pouvez tester la connexion à ce stade. Si vous cochez les cases «Enregistrer» à côté du champ du nom d'utilisateur et du mot de passe, il stockera vos informations d'identification dans votre profil afin que vous n'ayez pas à entrer à chaque fois. À vous de décider selon vos besoins de sécurité.

Appuyez sur OK et fermez la «fenêtre Ajouter une table PostGIS»

Ensuite, allez à Database > DB Manager > DB Manager (Les versions récentes de QGIS ont DB Manager installé en standard, les versions antérieures dont vous aurez besoin pour installer le plug-in DB Manager)

Sélectionnez PostGIS. Le schéma public par défaut sera affiché. Il semble que vous deviez créer un nouveau schéma plutôt que d'utiliser le schéma public.

Schéma> Créer un schéma - Donnez-lui un nom (no_spaces_or_use_underscores )

Une fois créé, vous pouvez vérifier en revenant à pgAdmin, vous déconnecter, vous reconnecter. Le nouveau schéma devrait maintenant être là.

Revenez à QGIS DB Manager pour télécharger un fichier de formes dans une table de la base de données.

Cliquez sur la flèche vers le bas «Importer un calque / fichier», recherchez le fichier de formes que vous souhaitez importer. Cliquez sur l'icône `` ... '' pour ouvrir la navigation.

Donnez un nom à la table (again_no_spaces_or_use_underscores )

Sélectionner Primary key

Sélectionner Geometry Column

Sélectionner SRID et entrez le code CRS

Pour l'instant, laissez tout le reste et OK .

S'il s'agit d'un grand ensemble de données, cela peut prendre un certain temps, en particulier sur une connexion réseau / Internet

Encore une fois, vous pouvez revenir à pgAdmin, appuyez sur Actualiser cette fois, et le nouveau tableau apparaîtra dans Tables .

Si vous avez configuré des rôles de groupe et des utilisateurs, vous devrez accorder l'accès au schéma, par exemple;

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

Retour à QGIS et 'Ajouter une couche PostGIS'. Cette fois, sélectionnez Connecter. Ouvrez le schéma et mettez en surbrillance le tableau et cliquez sur «Ajouter» et il s'ouvrira dans votre espace de projet.

Martin Hügi
la source
Il semble qu'ils aient installé PQadmin 4, je fournis le mot de passe lorsque le programme le demande mais j'obtiens "impossible de traduire le nom d'hôte" postgres // * nom_communauté123 "en adresse: Erreur de serveur inconnue". Alors, que dois-je faire ici, gardez à l'esprit que je travaille avec PQadmin4 et qu'il n'y a qu'un seul serveur PostGre SQL 9.6. Je vais donc supposer ici que c'est le serveur PostGre QSL qu'ils ont installé, mais ils ont peut-être fait quelque chose de mal avec la configuration de l'adresse. Dois-je donc les informer ici ou est-ce que je fais quelque chose de mal? * = capteur.
ThunderSpark
1
Essayez 'localhost' comme nom d'hôte, juste pour exclure cela. Sinon, demandez à votre administrateur le chemin d'accès à Postgres sur le réseau, il devrait pouvoir vous le fournir. C'est probablement juste de la syntaxe, ou il manque quelque chose dans l'adresse.
Martin Hügi
Merci d'avoir travaillé, il s'avère qu'ils ont fait une erreur en changeant également le nom d'utilisateur en superutilisateur, Postgres et ainsi de suite. Je vais suivre le reste de l'instruction et voir si cela fonctionne. Merci Martin.
ThunderSpark
Oke ça marche Martin, pouvez-vous s'il vous plaît ajouter le reste de la façon dont faire la base de données pour un groupe qui travaille ici?
ThunderSpark
J'ai rapidement ajouté quelques scripts, j'ai dû attendre ma pause déjeuner, donc un peu précipité. Ils devraient fonctionner.
Martin Hügi
2

Il semble que votre projet fonctionnera suffisamment sur une installation portable de postgres / postgis. J'ai fait cela pour mes élèves il y a un certain temps, afin qu'ils puissent copier le dossier postgresl sur une clé USB et l'utiliser sur tous les PC Windows:

  1. Télécharger postgresql en fichier zip
  2. Décompressez-le
  3. Téléchargez postgis (postgis-bundle-pg96-2.3.1x32.zip ou x64), selon votre système
  4. Décompressez-le et copiez-le dans le dossier postgresql
  5. Utilisez cette explication pour "installer" Postgres en tant que version portable: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Modifiez éventuellement pg_hba.conf et ajoutez / remplacez "host all all 127.0.0.1/32 trust" - cela permet l'accès de votre PC à la base de données sans vérifier le mot de passe, ce qui est correct dans ce cas mais c'est un non-aller dans les environnements de production
  7. Connectez-vous à la base de données à l'aide de pgadmin3
  8. Créez une nouvelle base de données et exécutez "CREATE EXTENSION postgis;"

Vous devriez maintenant pouvoir travailler avec postgesql / postgis et accéder à la base de données sur votre PC. Veuillez noter qu'il s'agit d'une solution rapide et sale, qui fonctionne à des fins éducatives mais pas dans un environnement de production / réseau.

MughtyWinky
la source