Пільги на INSERT в PostGIS / QGIS


12

Я намагаюся встановити в моїй базі привілеїв для користувачів, щоб вони могли ОНОВЛЮВАТИ, ВСТАВИТИ, ВИДАЛИТИ і, звичайно, ВИБІРИ на географічних таблицях.

Оскільки я використовую деякі СЕРІЙНІ типи для своїх ідентифікаторів, я вважаю за краще навіть не давати користувачам можливості вручну редагувати це поле. Тож я визначаю привілеї, що належать до стовпців. Він добре працює в частині ОНОВЛЕННЯ, але кнопка в QGIS, що дозволяє створити новий об'єкт, залишається сірим. Єдиний спосіб, як це здається, працює, коли я не вказую жодне поле у ​​визначенні привілеїв. Навіть коли я вибираю всі поля, це не працює (хоча я б подумав, що не вказати жоден стовпець і вказати всі вони будуть однаковими).

Здається, я щось не розумію, або є обмеження у визначенні привілеїв для належної взаємодії між БД та QGIS. Хтось має інформацію чи поради, які могли б допомогти мені зрозуміти, що відбувається, та / або (ще краще) допомогти мені досягти своєї мети?

Я завжди можу впоратися з цим, встановивши поле як таке, що не можна редагувати у визначенні стилю, але оскільки кожен може встановити його як завгодно, я вважаю за краще більш безпечну альтернативу.

Запуск QGIS 2.14, PostGIS 2.3 для PostgreSQL 9.5.


Чи використовуєте ви команду GRANT SQL для встановлення прав (привілеїв) користувача? Ви ВИСТАВЛЯЄТЬСЯ ВСТУП на своєму столі?
Золтан

@Zoltan Так, мій запит виглядає такGRANT INSERT (col2, col3, col4) ON table TO users
GuiOm Clair

5
Користувач, який повинен мати права INSERT, повинен мати повні права на стовпчик первинного ключа. Інакше вона не зможе зробити вкладиш. Я не думаю, що немає способу навколо цього. Ви можете обмежити видимість цього стовпця в QGIS, як ви вже згадували.
Міха,

1
@Micha Добре, то, справді, має сенс сказати так ... Я думаю, у мене також є інше вирішення за допомогою тригера, характерного для стовпця. ВСТУПУЙТЕ НЕ НІЩО, А НАДНОВИТИ НЕ НІЩО для первинного ключа, що заважатиме будь-якій редакції вручну первинний ключ. Дякую.
GuiOm Clair

3
Або ви створюєте подання таблиці, виключаючи стовпець СЕРІЙНИЙ, і надаєте доступ лише до цього подання.
JoeBe

Відповіді:


0

Користувач, який повинен мати права INSERT, повинен мати повні права на стовпчик первинного ключа. Інакше вона не зможе зробити вкладиш. Я не думаю, що немає способу навколо цього. Ви можете обмежити видимість цього стовпця в QGIS, як ви вже згадували.

Щодо вашого коментаря: column-specific trigger ON INSERT DO NOTHING and ON UPDATE DO NOTHING for the primary keyя не впевнений, що це спрацює. Вставляючи новий рядок , очевидно, повинен бути створений новий первинний ключ . Ви не хочете цього обійти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.