PostGIS-Datenbank einrichten und in QGIS unter Windows öffnen?

13

Ich habe versucht, die Anleitungen zum Einrichten einer PostGIS-Datenbank zu befolgen, auf die Benutzer mit QGIS zugreifen können, kann aber im Moment nicht genug verstehen, um Fortschritte zu erzielen.

Meine Situation; Ich bin ein Praktikant, der für die Erstellung einer PostGIS-Datenbank für die Digitalisierung von grünen Objekten (z. B. Bäumen) und die Ausführung von Abfragen verantwortlich ist - wie das Verknüpfen einer Straßenliste mit Bilddateien mit der Attributtabelle.

Ich habe "Shapefile-Skelette" (derzeit leer, nur der Attributrahmen, in den die aktuellen und zukünftigen georeferenzierten Objekte (für jeden Typ ein anderes Shapefile) eingefügt / erstellt werden. Ich vertraue darauf, dass ich diese Skelett-Shapefiles einfach importieren kann die Datenbank?

Die Situation;

Wir arbeiten in einem separaten Gebäude mit eigener LAN- und Internetverbindung mit einem Backup-Server für jede Datei. Wir haben also lokalen Dateizugriff und Dateien, die wir über eine Internetverbindung freigeben

Die Einrichtung der Datenbank wurde von einem Administrator über Remotezugriff unter Verwendung der neuesten EXE-Ausführungsdateien von PostGIS und PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2) vorgenommen -1) für meine 64-Bit-Maschine. Der Administrator hat mir eine Textdatei mit Anmeldeinformationen zur Verfügung gestellt. Die Trainingshandbücher hier sind ziemlich verwirrend, da sie sich mit Ubuntu befassen.

Ich stecke fest, weil ich nicht weiß, wo ich die Anmeldeinformationen verwenden soll, die ich notiert habe? Ich gehe davon aus, dass ich pgAdmin verwenden muss.

ThunderSpark
quelle
So installiere ich PostGIS unter Windows - bei einer einfachen Installation von get.enterprisedb.com/docs/… kann QGIS problemlos eine Verbindung mit dem von Ihnen festgelegten Benutzernamen und Passwort herstellen.
Mapperz
1
Ich würde definitiv empfehlen, pgAdmin 3 zu installieren, um mit Ihrer Datenbank zu arbeiten. Es gibt jetzt einen pgAdmin4, Sie können auch versuchen, diesen gleichzeitig zu installieren, um festzustellen, welchen Sie bevorzugen.
Martin Hügi
Warten Sie, wo gehen Sie dann in QGIS hin und welche Dateien sollte ich im Stackbuilder installieren? Edit nvm: habe es jetzt gefunden Ich muss herausfinden, welche lokalen Host- und Service-Einträge ich machen muss.
ThunderSpark
Postgis installiert den erforderlichen 'Server' lokal. So funktioniert die Datenbank - Sie verwenden dann QGIS, um eine Verbindung 'live' über den Server (localhost) herzustellen.
Mapperz

Antworten:

23

Es hört sich so an, als ob Ihr Administrator die Datenbank erfolgreich installiert und Ihnen die erforderlichen Details zur Verfügung gestellt hat. Möglicherweise haben sie auch PostGIS während der Installation konfiguriert. Wenn dies nicht der Fall ist, können Sie dies überprüfen, während Sie diese Schritte ausführen.

Bitten Sie zuerst Ihren Administrator, pgAdmin zu installieren, damit Sie über eine grafische Oberfläche auf Ihre PostgreSQL-Datenbank zugreifen können.

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

Öffnen Sie pgAdmin

Wenn Ihr PostgreSQL installiert wurde;

  • Auf Ihrem Computer wird es als localhost angezeigt. Sie sollten in der Lage sein, auf 'PostgreSQL 9.6 (localhost: 5432)' zu doppelklicken, um eine Verbindung zu ihm herzustellen.

Bildbeschreibung hier eingeben

  • Wenn es im Netzwerk installiert wurde, muss Ihr Administrator Ihnen die Hostadresse mitteilen (falls Sie diese noch nicht haben). Gehen Sie dann zu Datei> Server hinzufügen und füllen Sie die Felder aus.

Bildbeschreibung hier eingeben

Sobald die Verbindung hergestellt ist, gehen Sie zu Edit > New Object > New Database

Gib ihm einen Namen. Es wird in Ihrer Serverliste angezeigt.

Doppelklicken Sie, um eine Verbindung herzustellen. Überprüfen Sie das, um Extensionszu sehen, ob es aufgelistet ist postgis.

Wenn nicht;

Öffnen Sie das SQL-Fenster, indem Sie auf das SQL-Symbol klicken

Bildbeschreibung hier eingeben

und tippe ein

CREATE EXTENSION PostGIS

Drücken Sie auf "Abfrage ausführen" - dieses Symbol Bildbeschreibung hier eingeben

Klicken Sie mit der rechten Maustaste auf die Datenbank in der Liste, trennen Sie die Verbindung und stellen Sie die Verbindung wieder her. Erweiterungen sollten jetzt postgisaufgeführt sein.

Sie könnten zu diesem Zeitpunkt eine neue Gruppenrolle und Anmelderolle einrichten. Es hört sich so an, als ob Sie die Sicherheitsanforderungen und Ihre Benutzer im gesamten Netzwerk berücksichtigen sollten.

Wenn Sie es nur testen möchten, können Sie mit der Standardrolle fortfahren postgres.

Es können verschiedene Gruppen mit unterschiedlichen Berechtigungen eingerichtet werden, z. B. Administrator und Benutzer. Benutzeranmeldungen können dann eingerichtet und einer beliebigen Gruppe zugewiesen werden, die der Berechtigungsstufe entspricht, die Sie dem Benutzer erteilen möchten, oder Sie können dem Administrator Zugriff auf alle Tabellen gewähren, und nur einigen Benutzern usw. Möglicherweise benötigen Sie keine Administratorgruppe.

Öffnen Sie das SQL-Fenster und führen Sie diese Abfragen aus.

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;

Einrichten eines Administrator-Logins (als Postgres / Superuser angemeldet)

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

Einrichten einer Benutzeranmeldung (als Postgres / Superuser angemeldet)

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

Öffnen Sie QGIS. Starten Sie ein neues Projekt.

Klicken Sie in der linken Symbolleiste auf das Symbol "PostGIS-Ebene hinzufügen".

Bildbeschreibung hier eingeben

Klicken Sie auf "Neue" Verbindung und geben Sie die Verbindungsdetails wie oben ein (wenn Ihre Datenbank lokal ist, ist Host nur localhost).

Sie können die Verbindung jetzt testen. Wenn Sie das Kontrollkästchen "Speichern" neben dem Benutzernamen und dem Kennwort aktivieren, werden Ihre Anmeldeinformationen in Ihrem Profil gespeichert, sodass Sie nicht jedes Mal neu eingeben müssen. Abhängig von Ihren Sicherheitsanforderungen.

Klicken Sie auf "OK" und schließen Sie das Fenster "PostGIS-Tabelle hinzufügen".

Gehen Sie dann zu Database > DB Manager > DB Manager (In den neuesten QGIS-Versionen ist DB Manager standardmäßig installiert. In früheren Versionen müssen Sie das DB Manager-Plugin installieren.)

Wählen Sie PostGIS. Das öffentliche Standardschema wird angezeigt. Es hört sich so an, als ob Sie ein neues Schema erstellen sollten, anstatt das öffentliche zu verwenden.

Schema> Schema erstellen - Geben Sie ihm einen Namen ( no_spaces_or_use_underscores)

Nach dem Erstellen können Sie überprüfen, indem Sie zu pgAdmin zurückkehren, die Verbindung trennen und die Verbindung wiederherstellen. Das neue Schema sollte jetzt da sein.

Zurück zum QGIS DB Manager, um ein Shapefile in eine Tabelle in der Datenbank hochzuladen.

Klicken Sie auf den Abwärtspfeil 'Ebene / Datei importieren' und navigieren Sie zu dem Shapefile, das Sie importieren möchten. Klicken Sie auf das Symbol "...", um "Durchsuchen" zu öffnen.

Gib dem Tisch einen Namen ( again_no_spaces_or_use_underscores)

Wählen Primary key

Wählen Geometry Column

Wählen Sie SRIDund geben Sie den CRS-Code ein

Vorerst alles übrige lassen und OK.

Wenn es sich um einen großen Datensatz handelt, kann dies eine Weile dauern, insbesondere über eine Netzwerk- / Internetverbindung

Sie können wieder zu pgAdmin zurückkehren und diesmal auf "Aktualisieren" klicken. Die neue Tabelle wird in angezeigt Tables.

Wenn Sie Gruppenrollen und Benutzer eingerichtet haben, müssen Sie beispielsweise Zugriff auf das Schema gewähren.

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

Zurück zu QGIS und 'PostGIS-Ebene hinzufügen'. Dieses Mal wählen Sie Verbinden. Öffnen Sie das Schema, markieren Sie die Tabelle und klicken Sie auf "Hinzufügen". Es wird in Ihrem Projektbereich geöffnet.

Martin Hügi
quelle
Es scheint, dass sie PQadmin 4 installiert haben. Ich gebe das Passwort ein, wenn das Programm danach fragt, aber ich erhalte die Meldung "Hostname" postgres // * communityname123 konnte nicht in Adresse übersetzt werden: Unbekannter Serverfehler ". Was muss ich hier also tun? Denken Sie daran, dass ich mit PQadmin4 arbeite und es nur einen Server für PostGre SQL 9.6 gibt. Ich gehe also davon aus, dass dies der PostGre QSL-Server ist, den sie installiert haben, aber sie haben möglicherweise etwas an der Konfiguration der Adresse falsch gemacht. Muss ich sie hier informieren oder mache ich etwas falsch? * = Sensor.
ThunderSpark
1
Versuchen Sie 'localhost' als Hostnamen, nur um dies auszuschließen. Wenn nicht, fragen Sie Ihren Administrator nach dem Pfad zu postgres im Netzwerk. Er sollte Ihnen dies mitteilen können. Wahrscheinlich ist es nur Syntax oder es fehlt etwas in der Adresse.
Martin Hügi
Vielen Dank, dass es funktioniert hat. Es stellte sich heraus, dass sie einen Fehler gemacht haben, indem sie auch den Benutzernamen in Superuser, Postgres und so weiter geändert haben. Ich werde den Rest der Anweisung befolgen und prüfen, ob es funktioniert. Vielen Dank, Martin.
ThunderSpark
Oke es funktioniert, Martin, kannst du bitte den Rest der Datenbank für eine Gruppe hinzufügen, die hier arbeitet?
ThunderSpark
Schnell ein paar Skripte hinzugefügt, musste ich auf meine Mittagspause warten, also etwas gehetzt. Sie sollten arbeiten.
Martin Hügi
2

Es scheint, dass Ihr Projekt auf einer portablen Installation von Postgres / Postgis ausreichend funktioniert. Ich habe das vor einiger Zeit für meine Schüler gemacht, damit sie den Postgresl-Ordner auf einen USB-Stick kopieren und auf jedem Windows-PC verwenden können:

  1. Laden Sie postgresql als zip-Datei herunter
  2. Entpacke es
  3. Laden Sie postgis (postgis-bundle-pg96-2.3.1x32.zip oder x64) entsprechend Ihrem System herunter
  4. Entpacke es und kopiere es in den postgresql Ordner
  5. Verwenden Sie diese Erklärung, um Postgres als portable Version zu "installieren": http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Optional können Sie pg_hba.conf ändern und "host all all 127.0.0.1/32 trust" hinzufügen / überschreiben. Dies ermöglicht den Zugriff von Ihrem PC auf die Datenbank, ohne das Kennwort zu überprüfen. Dies ist in diesem Fall in Ordnung, in Produktionsumgebungen jedoch kein Problem
  7. Stellen Sie mit pgadmin3 eine Verbindung zur Datenbank her
  8. Erstellen Sie eine neue Datenbank und führen Sie "CREATE EXTENSION postgis" aus.

Nun sollten Sie in der Lage sein, mit postgesql / postgis zu arbeiten und auf die Datenbank auf Ihrem PC zuzugreifen. Bitte beachten Sie, dass dies eine schnelle und schmutzige Lösung ist, die zu Ausbildungszwecken funktioniert, jedoch nicht in einer Produktions- / Netzwerkumgebung.

MughtyWinky
quelle