PostgreSQL - ограничить удаление/обновление таблицы определенной ролью в зависимости от значения поля

Можно ли предотвратить обновление/удаление строки в таблице для определенной роли в зависимости от значения строки?

Эта роль должна иметь возможность запрашивать строки с помощью select.

Пример: говорят, что у нас есть пользователь bob и admin.

  • флаг = 0, Боб должен иметь возможность обновлять/удалять строку
  • флаг = 1, Боб не может обновить или удалить строку, но Боб может выбрать строку
  • флаг = 0 или флаг = 1, администратор может обновить или удалить строку, независимо от значения флага

Я проверил RLS (безопасность на уровне строк), но не знаю, как это сделать.

Спасибо


person Kumzy    schedule 21.09.2018    source источник
comment
Я надеюсь, что этот вопрос поможет вам stackoverflow.com/questions/51400905/, вы можете создать группу людей, которые могут редактировать, и другую, которая не может. Затем создайте POLICY, аналогичный вопросу в приведенной выше ссылке. Затем активируйте безопасность на уровне строк в этой таблице, как в предыдущем вопросе. Это заставит RLS работать на основе определенной политики.   -  person khaldi    schedule 26.09.2018
comment
в Policy заменить "ДЛЯ ВСЕХ" на "ДЛЯ ОБНОВЛЕНИЯ, УДАЛЕНИЯ"   -  person khaldi    schedule 26.09.2018