Gaya layer QGIS / PostGIS

9

Saya telah membuat plugin yang meminta kredensial masuk ke DB. Setelah masuk, plugin memuat beberapa layer dari DB. Dalam DB ada pengguna admin dan "normal".

Saya telah menyimpan dua gaya ke DB dari UI sebagai gaya default untuk masing-masing lapisan (sepertinya Anda harus memiliki hak admin DB untuk dapat menyimpannya).

Setelah saya menyimpan style ke db saya tidak bisa melihat di mana mereka disimpan yaitu, saya tidak bisa melihat tabel baru. (Saya berharap gaya disimpan dalam tabel)

Menjalankan QGIS dan plugin lagi (sebagai pengguna admin) gaya layer dimuat secara otomatis.

Tapi, menjalankan QGIS dan plugin lagi (seperti rnd pengguna normal) mereka tidak dimuat secara otomatis. Saya kemudian mencoba memuat gaya dari DB (dari GUI), tetapi tidak ada gaya yang dimuat.

Dua pertanyaan.

  1. Bagaimana gaya layer disimpan dalam DB?
  2. Apakah ada cara untuk memuat gaya layer tanpa hak admin DB?
pengguna28233
sumber
Apakah pengguna normal Anda diberikan akses ke tabel Anda? bagaimana dengan tabel gaya Anda?
Alexandre Neto
Pengguna normal saya memiliki akses ke tabel lapisan. Mereka dimuat sebagaimana mestinya. Mengenai tabel gaya, itulah masalahnya. Saya berharap ada tabel gaya tetapi tidak bisa melihatnya di DB menggunakan pgAdmin. Bisa jadi gaya disimpan dengan cara lain, tapi bagaimana caranya? Jika saya bisa menemukan tabel gaya apa pun, saya bisa memberikan stoking akses pengguna normal kepada mereka.
user28233

Jawaban:

11

Gaya biasanya disimpan di public.layer_styles.

Berada dalam skema publik itu harus dapat diakses oleh setiap pengguna. Jika tidak, pastikan menggunakan:

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users
Alexandre Neto
sumber
Saya tidak menyadari bahwa style telah disimpan public(bekerja dengan db dengan beberapa skema).
user28233