Menyiapkan database PostGIS dan membukanya di QGIS pada Windows?

14

Saya telah mencoba mengikuti manual untuk mengatur database PostGIS agar dapat diakses oleh pengguna dengan QGIS, tetapi saat ini saya tidak cukup mengerti untuk maju?

Situasi saya; Saya seorang peserta pelatihan yang bertanggung jawab untuk membuat database PostGIS untuk digitalisasi objek hijau (seperti pohon) dan menjalankan kueri - seperti menghubungkan daftar jalan, dengan file gambar, ke tabel atribut.

Saya memiliki "skeleton shapefile" (saat ini kosong tanpa objek, hanya frame atribut "di mana objek georeferensi saat ini dan masa depan (sebuah shapefile berbeda untuk setiap jenis) akan ditempel / dibuat). Saya percaya saya bisa mengimpor skeleton shapefile tersebut ke data?

Situasi;

Kami bekerja di gedung terpisah dengan LAN kami sendiri dan koneksi internet dengan server cadangan untuk setiap file. Jadi kami memiliki akses file lokal dan file yang kami bagikan melalui koneksi internet

Pengaturan database telah dilakukan oleh administrator melalui akses jarak jauh, menggunakan file eksekusi .exe terbaru dari PostGIS dan PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2 -1) untuk mesin 64-bit saya. Administrator memberi saya file teks dengan informasi masuk. Manual pelatihan di sini sangat membingungkan karena mereka berurusan dengan Ubuntu.

Saya macet karena saya tidak tahu di mana harus menggunakan informasi login yang telah saya tulis? Saya menganggap saya perlu menggunakan pgAdmin?

ThunderSpark
sumber
Ini cara saya menginstal PostGIS di Windows - dalam instalasi sederhana get.enterprisedb.com/docs/… maka QGIS akan terhubung dengan mudah dengan nama pengguna dan kata sandi yang Anda tetapkan.
Mapperz
1
Saya pasti akan menyarankan menginstal pgAdmin 3 untuk bekerja dengan database Anda. Ada pgAdmin4 sekarang, Anda juga bisa melihat untuk menginstal itu pada saat yang sama, lihat mana yang Anda inginkan.
Martin Hügi
Tunggu, jadi kemana perginya QGIS, dan file mana yang harus saya instal di stackbuilder? Sunting nvm: temukan sekarang saya harus mencari host lokal dan entri layanan mana yang harus saya buat.
ThunderSpark
Postgis akan menginstal 'server' yang diperlukan secara lokal, inilah cara kerja database - Anda kemudian menggunakan QGIS untuk menghubungkan 'live' melalui server (localhost).
Mapperz

Jawaban:

23

Kedengarannya seolah administrator Anda telah menginstal basis data dengan sukses dan memberi Anda perincian yang Anda perlukan. Mereka mungkin juga mengonfigurasi PostGIS selama instalasi juga, tetapi jika tidak, Anda dapat memeriksanya saat Anda menjalani langkah-langkah ini.

Pertama minta administrator Anda untuk menginstal pgAdmin ini akan memungkinkan Anda untuk mengakses database PostgreSQL Anda dengan antarmuka grafis.

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

Buka pgAdmin

Jika PostgreSQL Anda telah diinstal;

  • di komputer Anda akan muncul sebagai localhost, Anda harus dapat mengklik dua kali pada 'PostgreSQL (versi no.) (localhost: 5432)' untuk terhubung.

masukkan deskripsi gambar di sini

  • Jika telah diinstal pada jaringan, Anda akan memerlukan administrator Anda untuk memberi tahu Anda alamat host (jika Anda belum memilikinya), maka Anda harus pergi ke File> Add Server dan isi kolom;

masukkan deskripsi gambar di sini

Setelah terhubung pergi ke Edit > New Object > New Database

Beri nama. Ini akan muncul di daftar server Anda.

Klik dua kali untuk terhubung. Periksa Extensionsuntuk melihat apakah daftar postgis.

Jika tidak;

Buka jendela SQL dengan mengklik ikon SQL

masukkan deskripsi gambar di sini

dan ketik

CREATE EXTENSION PostGIS

Tekan 'Jalankan Query' - ikon ini masukkan deskripsi gambar di sini

Klik kanan pada database dalam daftar dan lepaskan, lalu hubungkan kembali. Ekstensi sekarang seharusnya sudah postgisterdaftar.

Anda dapat mengatur Peran Grup baru, dan peran login pada saat ini, sepertinya Anda harus memenuhi kebutuhan keamanan, dan pengguna Anda di seluruh jaringan.

Atau jika Anda hanya ingin mengujinya, Anda dapat melanjutkan dengan peran default postgres.

Grup yang berbeda dapat diatur untuk memiliki izin yang berbeda misalnya admin dan pengguna. Login pengguna kemudian dapat diatur dan ditugaskan ke grup apa pun yang sesuai dengan tingkat izin yang ingin Anda berikan kepada pengguna, atau Anda dapat memberikan akses ke semua tabel ke admin, dan hanya beberapa untuk pengguna dll. Anda mungkin tidak memerlukan grup admin.

Buka jendela SQL dan jalankan query ini;

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;

Siapkan login admin (login sebagai postgres / superuser)

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

Siapkan login pengguna (login sebagai postgres / superuser)

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

Buka QGIS. Mulai proyek baru.

Klik ikon 'Tambahkan lapisan PostGIS' di bilah alat sebelah kiri.

masukkan deskripsi gambar di sini

Klik koneksi 'Baru', dan masukkan detail koneksi seperti di atas (jika database Anda bersifat lokal maka host-nya adil localhost).

Anda dapat menguji koneksi pada titik ini. Jika Anda mencentang kotak 'Simpan' oleh bidang nama pengguna dan kata sandi, itu akan menyimpan kredensial Anda di profil Anda sehingga Anda tidak perlu memasukkan setiap waktu. Terserah Anda tergantung pada kebutuhan keamanan Anda.

Tekan OK dan tutup 'Tambahkan tabel tabel PostGIS'

Lalu pergi ke Database > DB Manager > DB Manager (Versi QGIS terbaru menginstal DB Manager sebagai standar, versi sebelumnya Anda perlu menginstal plugin DB Manager)

Pilih PostGIS. Skema publik default akan ditampilkan. Sepertinya Anda harus membuat skema baru daripada menggunakan skema publik.

Skema> Buat skema - Beri nama ( no_spaces_or_use_underscores)

Setelah dibuat, Anda dapat memeriksa dengan kembali ke pgAdmin, putuskan sambungan, hubungkan kembali. Skema baru sekarang harus ada di sana.

Kembali ke QGIS DB Manager untuk mengunggah shapefile ke dalam tabel di database.

Klik panah bawah untuk menelusuri 'Impor layer / file' ke shapefile yang ingin Anda impor. Klik ikon `...` `untuk membuka penelusuran.

Beri nama pada tabel ( again_no_spaces_or_use_underscores)

Pilih Primary key

Pilih Geometry Column

Pilih SRIDdan masukkan kode CRS

Untuk sekarang tinggalkan yang lainnya dan OK.

Jika ini adalah kumpulan data yang besar, ini bisa memakan waktu cukup lama, terutama melintasi koneksi jaringan / internet

Sekali lagi Anda dapat kembali ke pgAdmin, tekan segarkan kali ini, dan tabel baru akan muncul di Tables.

Jika Anda telah menetapkan peran dan pengguna grup, Anda perlu memberikan akses ke skema, misalnya;

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

Kembali ke QGIS dan 'Tambahkan lapisan PostGIS'. Kali ini pilih Sambungkan. Buka skema dan sorot tabel dan klik 'Tambah' dan itu akan terbuka di ruang proyek Anda.

Martin Hügi
sumber
Sepertinya mereka menginstal PQadmin 4, saya memberikan kata sandi ketika program memintanya tetapi saya mendapatkan "tidak dapat menerjemahkan nama host" postgres // * communityname123 "ke alamat: Galat server tidak dikenal". Jadi apa yang harus saya lakukan di sini, perlu diingat saya bekerja dengan PQadmin4 dan hanya ada satu server PostGre SQL 9.6. Jadi saya akan berasumsi di sini ini adalah server QSL PostGre yang mereka instal, tetapi mereka mungkin melakukan sesuatu yang salah dengan konfigurasi alamat. Jadi apakah saya perlu memberi tahu mereka di sini atau saya melakukan sesuatu yang salah? * = sensor.
ThunderSpark
1
Coba 'localhost' sebagai nama host, hanya untuk mengesampingkannya. Maka jika tidak, tanyakan kepada administrator Anda tentang jalur ke tempat postgres berada di jaringan, mereka seharusnya bisa memberi Anda ini. Itu mungkin hanya sintaks, atau melewatkan sesuatu di alamat.
Martin Hügi
Terima kasih yang berhasil, ternyata mereka melakukan kesalahan dengan juga mengubah nama pengguna menjadi superuser, Postgres dan sebagainya. Saya akan mengikuti sisa instruksi dan melihat apakah itu berhasil. Martin terima kasih.
ThunderSpark
Oke itu berfungsi Martin, bisa tolong tambahkan sisa bagaimana membuat database untuk kelompok yang bekerja di sini?
ThunderSpark
Dengan cepat menambahkan beberapa skrip, saya harus menunggu istirahat makan siang, jadi sedikit terburu-buru. Mereka harusnya bekerja.
Martin Hügi
2

Tampaknya proyek Anda akan bekerja cukup pada instalasi portabel postgres / postgis. Saya melakukan ini untuk siswa saya beberapa waktu lalu, sehingga mereka dapat menyalin folder postgresl pada stik usb dan menggunakannya di setiap windows pc:

  1. Unduh postgresql sebagai file zip
  2. Buka zipnya
  3. Unduh postgis (postgis-bundle-pg96-2.3.1x32.zip atau x64), sesuai dengan sistem Anda
  4. Buka zip dan salin ke folder postgresql
  5. Gunakan penjelasan ini untuk "menginstal" Postgres sebagai versi portabel: http://www.postgresonline.com/journal/archives/172-Mulai-PostgreSQL-in-windows-without-install.html
  6. Opsional ubah pg_hba.conf dan tambahkan / timpa "host semua kepercayaan 127.0.0.1/32" - ini memungkinkan akses dari pc Anda ke basis data tanpa memeriksa kata sandi, yang ok dalam kasus ini tetapi tidak ada dalam lingkungan produksi
  7. Terhubung ke database menggunakan pgadmin3
  8. Buat database baru dan jalankan "CREATE EXTENSION postgis;"

Sekarang Anda harus dapat bekerja dengan postgesql / postgis dan mengakses db di komputer Anda. Perlu diketahui bahwa ini adalah solusi cepat dan kotor, yang berfungsi untuk tujuan pendidikan tetapi tidak dalam lingkungan produksi / jaringan.

MughtyWinky
sumber