QGIS / PostGIS-Ebenenstile

9

Ich habe ein Plugin erstellt, das nach Anmeldeinformationen für eine Datenbank fragt. Sobald Sie angemeldet sind, lädt das Plugin einige Layer aus der Datenbank. In der Datenbank gibt es sowohl Administrator- als auch "normale" Benutzer.

Ich habe zwei Stile von der Benutzeroberfläche als Standardstil für ihre Ebene in der Datenbank gespeichert (anscheinend müssen Sie über DB-Administratorrechte verfügen, um sie speichern zu können).

Sobald ich die Stile in der Datenbank gespeichert habe, kann ich nicht sehen, wo sie gespeichert sind, dh ich kann keine neuen Tabellen sehen. (Ich habe erwartet, dass die Stile in einer Tabelle gespeichert werden)

Wenn Sie QGIS und das Plugin erneut ausführen (als Administrator), werden die Ebenenstile automatisch geladen.

Wenn Sie QGIS und das Plugin erneut ausführen (wie beim normalen Benutzer), werden sie jedoch nicht automatisch geladen. Ich versuche dann, die Stile aus der Datenbank (von der GUI) zu laden, aber es werden keine Stile geladen.

Zwei Fragen.

  1. Wie werden die Ebenenstile in der Datenbank gespeichert?
  2. Gibt es eine Möglichkeit, die Ebenenstile ohne DB-Administratorrechte zu laden?
user28233
quelle
Wurden Ihren normalen Benutzern Zugriff auf Ihre Tabellen gewährt? Wie wäre es mit Ihren Stiltabellen?
Alexandre Neto
Meine normalen Benutzer haben Zugriff auf die Ebenentabellen. Sie werden geladen, wie sie sollten. In Bezug auf Stiltabellen ist dies das Problem. Ich hatte erwartet, dass es Stiltabellen gibt, kann sie aber mit pgAdmin nicht in der Datenbank sehen. Könnte sein, dass Stile auf andere Weise gespeichert werden, aber wie? Wenn ich Stiltabellen finden könnte, könnte ich normalen Benutzern Zugriff auf Strumpfhosen gewähren.
user28233

Antworten:

11

Die Stile werden normalerweise in public.layer_styles gespeichert.

Da es sich im öffentlichen Schema befindet, sollte es für jeden Benutzer zugänglich sein. Wenn nicht, stellen Sie sicher, dass Folgendes verwendet wird:

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users
Alexandre Neto
quelle
Mir war nicht bewusst, dass Stile gespeichert wurden public(Arbeiten mit einer Datenbank mit mehreren Schemata).
user28233