Задать вопрос
@Bovv

Почему не отрабатывает изменение правил доступа по умолчанию на уровне схемы?

Необходимо для конкретной роли выставить права только на чтение (SELECT) для конкретной схемы в БД. После выполнения команды
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO myuser;

Всё работает отлично, но только для тех таблиц, которые уже существуют. Для таблиц, которые были созданы после назначения этих прав, доступ отсутствует. Чтобы исправить эту проблему, выполняется изменение настроек по умолчанию:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO myuser;

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON SEQUENCES TO myuser;

Данные команды не дают никакого результата, созданные в будущем таблицы, всё равно недоступны на чтение. Однако если в правах доступа разрешить не только чтение, а всё (ALL), проблема исчезает.
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT ALL ON TABLES TO myuser;

ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT ALL ON SEQUENCES TO myuser;


Как разрешить пользователю только чтение таблиц, которые будут созданы в дальнейшем в рамках данной схемы?
  • Вопрос задан
  • 231 просмотр
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы