Konfigurowanie bazy danych PostGIS i otwieranie jej w QGIS w systemie Windows?

15

Próbowałem postępować zgodnie z instrukcjami dotyczącymi konfigurowania bazy danych PostGIS, do której mają dostęp użytkownicy z QGIS, ale w tej chwili nie rozumiem wystarczająco dużo, aby przejść dalej?

Moja sytuacja; Jestem stażystą odpowiedzialnym za tworzenie bazy danych PostGIS do digitalizacji zielonych obiektów (takich jak drzewa) i uruchamianie zapytań - takich jak łączenie listy ulic z plikami obrazów do tabeli atrybutów.

Mam „szkielety plików kształtów” (obecnie puste bez żadnych obiektów, tylko ramka atrybutu ”, w którym zostaną wklejone / utworzone obecne i przyszłe obiekty georeferencyjne (inny plik kształtu dla każdego typu). Mam nadzieję, że mogę po prostu zaimportować te szkieletowe pliki kształtu baza danych?

Sytuacja;

Pracujemy w oddzielnym budynku z własnym połączeniem LAN i internetem z serwerem kopii zapasowych dla każdego pliku. Mamy więc lokalny dostęp do plików i pliki, które udostępniamy przez połączenie internetowe

Konfiguracja bazy danych została wykonana przez administratora za pomocą zdalnego dostępu, przy użyciu najnowszych plików wykonywalnych .exe PostGIS i PostgreSQL (postgresql-9.6.2-3-windows-x64 i postgis-bundle-pg96x64-setup-2.3.2 -1) dla mojego 64-bitowego komputera. Administrator dostarczył mi plik tekstowy z danymi logowania. Podręczniki szkoleniowe tutaj są dość mylące, ponieważ dotyczą Ubuntu.

Utknąłem, ponieważ nie wiem, gdzie użyć zapisanych przeze mnie danych logowania? Zakładam, że muszę użyć pgAdmin?

ThunderSpark
źródło
W ten sposób instaluję PostGIS w systemie Windows - w prostej instalacji get.enterlictb.com/docs/… wtedy QGIS łatwo połączy się z ustawioną nazwą użytkownika i hasłem.
Mapperz
1
Zdecydowanie radziłbym zainstalować pgAdmin 3 do pracy z bazą danych. Jest teraz pgAdmin4, możesz też spróbować zainstalować go w tym samym czasie, zobacz, który wolisz.
Martin Hügi
Poczekaj, więc gdzie w takim razie przejdź do QGIS i jakie pliki powinienem zainstalować w kreatorze stosów? Edytuj NVM: znalazłem to teraz Muszę znaleźć wpisy lokalnego hosta i usługi, które muszę wprowadzić.
ThunderSpark
Postgis zainstaluje wymagany „serwer” lokalnie, w ten sposób działa baza danych - następnie używasz QGIS do połączenia „na żywo” za pośrednictwem serwera (localhost).
Mapperz

Odpowiedzi:

24

Wygląda na to, że administrator pomyślnie zainstalował bazę danych i podał ci potrzebne informacje. Być może skonfigurowali także PostGIS podczas instalacji, ale jeśli nie, możesz to sprawdzić podczas wykonywania tych kroków.

Najpierw poproś administratora o zainstalowanie pgAdmin, co pozwoli ci uzyskać dostęp do bazy danych PostgreSQL za pomocą interfejsu graficznego.

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

Otwórz pgAdmin

Jeśli Twój PostgreSQL został zainstalowany;

  • na twoim komputerze pojawi się jako localhost, powinieneś być w stanie kliknąć dwukrotnie „PostgreSQL (wersja nr.) (localhost: 5432)”, aby się z nim połączyć.

wprowadź opis zdjęcia tutaj

  • Jeśli został zainstalowany w sieci, będziesz potrzebować administratora, aby poinformować Cię o adresie hosta (jeśli go jeszcze nie masz), a następnie przejdź do Plik> Dodaj serwer i wypełnij pola;

wprowadź opis zdjęcia tutaj

Po połączeniu przejdź do Edit > New Object > New Database

Daj temu imię. Pojawi się na liście serwerów.

Kliknij dwukrotnie, aby się z nim połączyć. Sprawdź, Extensionsczy zawiera listę postgis.

Jeśli nie;

Otwórz okno SQL, klikając ikonę SQL

wprowadź opis zdjęcia tutaj

i wpisz

CREATE EXTENSION PostGIS

Naciśnij „Wykonaj zapytanie” - ta ikona wprowadź opis zdjęcia tutaj

Kliknij prawym przyciskiem myszy bazę danych na liście i odłącz, a następnie podłącz ponownie. Rozszerzenia powinny być teraz postgiswymienione.

Możesz skonfigurować nową rolę grupy i rolę logowania w tym momencie, brzmi to tak, jakbyś powinien uwzględniać potrzeby bezpieczeństwa i użytkowników w całej sieci.

Lub jeśli chcesz go tylko przetestować, możesz kontynuować z domyślną rolą postgres.

Różne grupy mogą być skonfigurowane tak, aby mieć różne uprawnienia, np. Administrator i użytkownik. Loginy użytkownika można następnie skonfigurować i przypisać do dowolnej grupy, która odpowiada poziomowi uprawnień, które chcesz dać użytkownikowi, lub możesz przyznać dostęp do wszystkich tabel administratorowi, a tylko niektórym użytkownikom itp. Być może nie potrzebujesz grupy administracyjnej.

Otwórz okno SQL i wykonaj te zapytania;

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;

Ustaw login administratora (zalogowany jako postgres / superuser)

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

Ustaw login użytkownika (zalogowany jako postgres / superuser)

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

Otwórz QGIS. Rozpocznij nowy projekt.

Kliknij ikonę „Dodaj warstwę PostGIS” na pasku narzędzi po lewej stronie.

wprowadź opis zdjęcia tutaj

Kliknij „Nowe” połączenie i wprowadź szczegóły połączenia jak wyżej (jeśli baza danych jest lokalna, to host jest po prostu localhost).

W tym momencie możesz przetestować połączenie. Jeśli zaznaczysz pola „Zapisz” przy polu nazwy użytkownika i hasła, będą one przechowywać twoje dane uwierzytelniające w twoim profilu, więc nie musisz za każdym razem wprowadzać. W zależności od potrzeb w zakresie bezpieczeństwa.

Naciśnij Ok i zamknij okno „Dodaj tabelę PostGIS”

Następnie przejdź do Database > DB Manager > DB Manager (Najnowsze wersje QGIS mają zainstalowany DB Manager w standardzie, wcześniejsze wersje będą wymagały instalacji wtyczki DB Manager)

Wybierz PostGIS. Zostanie wyświetlony domyślny schemat publiczny. Wygląda na to, że powinieneś stworzyć nowy schemat zamiast używać publicznego.

Schemat> Utwórz schemat - Nadaj mu nazwę ( no_spaces_or_use_underscores)

Po utworzeniu możesz to sprawdzić, wracając do pgAdmin, rozłącz, ponownie połącz. Nowy schemat powinien już tam być.

Wróć do QGIS DB Manager, aby przesłać plik kształtu do tabeli w bazie danych.

Kliknij strzałkę w dół „Importuj warstwę / plik”, przejdź do pliku kształtu, który chcesz zaimportować. Kliknij ikonę `` ... '', aby otworzyć przeglądanie.

Nadaj tabeli nazwę ( again_no_spaces_or_use_underscores)

Wybierz Primary key

Wybierz Geometry Column

Wybierz SRIDi wprowadź kod CRS

Na razie zostaw wszystko inne i OK.

Jeśli jest to duży zestaw danych, może to chwilę potrwać, szczególnie przez połączenie sieciowe / internetowe

Ponownie możesz wrócić do pgAdmin, tym razem naciśnij przycisk odśwież, a nowa tabela pojawi się w Tables.

Jeśli skonfigurowałeś role grupy i użytkowników, musisz na przykład przyznać dostęp do schematu;

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

Wróć do QGIS i „Dodaj warstwę PostGIS”. Tym razem wybierz Połącz. Otwórz schemat i podświetl tabelę, a następnie kliknij „Dodaj”, a otworzy się w przestrzeni projektu.

Martin Hügi
źródło
Wygląda na to, że zainstalowali PQadmin 4. Podaję hasło, gdy program o to poprosi, ale pojawia się komunikat „Nie mogłem przetłumaczyć nazwy hosta„ postgres // * nazwa_społeczności123 ”na adres: nieznany błąd serwera”. Więc co muszę tutaj zrobić, pamiętaj, że pracuję z PQadmin4 i jest tylko jeden serwer PostGre SQL 9.6. Zakładam więc, że zainstalowali serwer PostGre QSL, ale mogli zrobić coś złego z konfiguracją adresu. Czy muszę ich tutaj poinformować, czy robię coś złego? * = czujnik.
ThunderSpark
1
Spróbuj „localhost” jako nazwy hosta, aby wykluczyć to wejście lub wyjście. Jeśli nie, poproś administratora o podanie ścieżki do postgresu w sieci, powinien on być w stanie ci to dać. Prawdopodobnie jest to po prostu składnia lub brak czegoś w adresie.
Martin Hügi
Dziękuję, że działało, okazało się, że popełnili błąd, zmieniając nazwę użytkownika na superużytkownika, Postgresa i tak dalej. Postępuję zgodnie z resztą instrukcji i sprawdzam, czy to działa. Dziękuję martin.
ThunderSpark
Ok, to działa Martin, czy możesz dodać resztę, jak zrobić bazę danych dla grupy, która tu pracuje?
ThunderSpark
Szybko dodałem kilka skryptów, musiałem czekać na przerwę na lunch, więc trochę się spieszyłem. Powinny działać.
Martin Hügi
2

Wygląda na to, że Twój projekt będzie działał wystarczająco dobrze na przenośnej instalacji postgres / postgis. Zrobiłem to dla moich studentów jakiś czas temu, aby mogli skopiować folder postgresl na pamięć USB i używać go na każdym komputerze z systemem Windows:

  1. Pobierz postgresql jako plik zip
  2. Rozpakuj to
  3. Pobierz postgis (postgis-bundle-pg96-2.3.1x32.zip lub x64), zgodnie z systemem
  4. Rozpakuj go i skopiuj do folderu postgresql
  5. Użyj tego wyjaśnienia, aby „zainstalować” Postgres jako wersję przenośną: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. Opcjonalnie zmień plik pg_hba.conf i dodaj / przesłoń „hostuj wszystkie zaufanie 127.0.0.1/32” - pozwala to na dostęp z komputera do bazy danych bez sprawdzania hasła, co w tym przypadku jest w porządku, ale w środowiskach produkcyjnych nie da się tego zrobić
  7. Połącz się z bazą danych za pomocą pgadmin3
  8. Utwórz nową bazę danych i uruchom „CREATE EXTENSION postgis;”

Teraz powinieneś być w stanie pracować z postgesql / postgis i uzyskać dostęp do bazy danych na komputerze. Należy pamiętać, że jest to szybkie i brudne rozwiązanie, które działa w celach edukacyjnych, ale nie w środowisku produkcyjnym / sieciowym.

MughtyWinky
źródło