Style warstw QGIS / PostGIS

9

Zrobiłem wtyczkę z prośbą o poświadczenia logowania do bazy danych. Po zalogowaniu wtyczka ładuje niektóre warstwy z bazy danych. W DB są zarówno administratorzy, jak i „normalni” użytkownicy.

Zapisałem dwa style DB w interfejsie użytkownika jako domyślny styl dla ich warstwy (wydaje się, że musisz mieć uprawnienia administratora DB, aby móc je zapisać).

Po zapisaniu stylów w bazie danych nie widzę, gdzie są przechowywane, tzn. Nie widzę nowych tabel. (Spodziewałem się, że style zostaną zapisane w tabeli)

Ponowne uruchomienie QGIS i wtyczki (jako użytkownik administracyjny) style warstw są ładowane automatycznie.

Ale po ponownym uruchomieniu QGIS i wtyczki (jak zwykły użytkownik rnd) nie są ładowane automatycznie. Następnie próbuję załadować style z DB (z GUI), ale żadne style nie są ładowane.

Dwa pytania.

  1. Jak przechowywane są style warstw w DB?
  2. Czy istnieje sposób na załadowanie stylów warstw bez uprawnień administratora DB?
użytkownik 28233
źródło
Czy twoi normalni użytkownicy mają dostęp do twoich tabel? co powiesz na swoje stoły w stylu?
Alexandre Neto,
Moi normalni użytkownicy mają dostęp do tabel warstw. Są ładowane tak, jak powinny. Jeśli chodzi o tabele stylów, to jest problem. Spodziewałem się, że będą tabele stylów, ale nie widzę ich w DB za pomocą pgAdmin. Możliwe, że style są przechowywane w inny sposób, ale w jaki sposób? Gdybym mógł znaleźć tabele stylu, dałbym normalnym użytkownikom dostęp do rajstop.
user28233,

Odpowiedzi:

11

Style są zwykle zapisywane w public.layer_styles.

Będąc w schemacie publicznym, powinien być dostępny dla każdego użytkownika. Jeśli nie, upewnij się, że używa:

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users
Alexandre Neto
źródło
Nie wiedziałem, że style zostały zapisane public(praca z bazą danych z kilkoma schematami).
user28233,