Styles de couches QGIS / PostGIS

9

J'ai créé un plugin demandant des informations de connexion à une base de données. Une fois connecté, le plugin charge certaines couches de la base de données. Dans la base de données, il y a à la fois des administrateurs et des utilisateurs "normaux".

J'ai enregistré deux styles dans la base de données à partir de l'interface utilisateur comme style par défaut pour leur couche respectivement (il semble que vous devez avoir des droits d'administrateur de base de données pour pouvoir les enregistrer).

Une fois que j'ai sauvegardé les styles dans la base de données, je ne peux pas voir où ils sont stockés, c'est-à-dire que je ne vois plus de nouvelles tables. (Je m'attendais à ce que les styles soient enregistrés dans un tableau)

En exécutant à nouveau QGIS et le plugin (en tant qu'utilisateur administrateur), les styles de couche sont chargés automatiquement.

Mais, en exécutant à nouveau QGIS et le plugin (en tant qu'utilisateur normal), ils ne sont pas chargés automatiquement. J'essaie ensuite de charger les styles à partir de la base de données (à partir de l'interface graphique), mais aucun style n'est chargé.

Deux questions.

  1. Comment les styles de calque sont-ils stockés dans la base de données?
  2. Existe-t-il un moyen de charger les styles de couche sans droits d'administrateur de base de données?
user28233
la source
Vos utilisateurs normaux ont-ils eu accès à vos tables? que diriez-vous de vos tables de style?
Alexandre Neto
Mes utilisateurs normaux ont accès aux tables de couches. Ils se chargent comme ils le devraient. En ce qui concerne les tables de style, c'est le problème. Je m'attendais à ce qu'il y ait des tables de style mais je ne peux pas les voir dans la base de données en utilisant pgAdmin. Les styles peuvent-ils être stockés d'une autre manière, mais comment? Si je pouvais trouver des tables de style, je pourrais donner aux utilisateurs normaux des collants d'accès.
user28233

Réponses:

11

Les styles sont normalement enregistrés dans public.layer_styles.

Étant dans le schéma public, il doit être accessible à tous les utilisateurs. Sinon, assurez-vous qu'il utilise:

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users
Alexandre Neto
la source
Je ne savais pas que les styles étaient enregistrés public(en travaillant avec une base de données avec plusieurs schémas).
user28233