Стили слоя QGIS / PostGIS

9

Я сделал плагин, запрашивающий учетные данные для входа в БД. После входа в систему плагин загружает несколько слоев из БД. В БД есть как администраторы, так и «обычные» пользователи.

Я сохранил два стиля в БД из пользовательского интерфейса в качестве стиля по умолчанию для их слоя соответственно (кажется, вы должны иметь права администратора БД, чтобы иметь возможность их сохранить).

После того, как я сохранил стили в БД, я не смог увидеть, где они хранятся, то есть я не вижу новых таблиц. (Я ожидал, что стили будут сохранены в таблице)

Запустив QGIS и плагин снова (как администратор), стили слоя загружаются автоматически.

Но при запуске QGIS и плагина снова (как обычный пользователь rnd) они не загружаются автоматически. Затем я пытаюсь загрузить стили из БД (из графического интерфейса), но стили не загружаются.

Два вопроса.

  1. Как стили слоя хранятся в БД?
  2. Есть ли способ загрузить стили слоя без прав администратора БД?
user28233
источник
Ваши обычные пользователи получили доступ к вашим таблицам? как насчет ваших таблиц стилей?
Александр Нето
Мои обычные пользователи имеют доступ к таблицам слоев. Они загружаются, как они должны. Что касается таблиц стилей, это проблема. Я ожидал, что будут таблицы стилей, но не могу увидеть их в БД с помощью pgAdmin. Может быть, стили хранятся по-другому, но как? Если бы я мог найти какие-либо таблицы стилей, я бы дал обычным пользователям доступ к ним.
user28233

Ответы:

11

Стили обычно сохраняются в public.layer_styles.

Находясь в публичной схеме, она должна быть доступна каждому пользователю. Если нет, убедитесь, что он использует:

GRANT SELECT ON TABLE public.layer_styles TO users;
-- "users" is a group with all your #normal users
Александр Нето
источник
Я не знал, что стили были сохранены public(работа с БД с несколькими схемами).
user28233