Почему привилегированный пользователь не может получить доступ к вновь созданному разделу?
PostgreSQL версия: 10.0
Предположим, у моего сервера PostgreSQL есть пользователь по имени app
со следующими разрешениями:
GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO app;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public to app;
Теперь этот пользователь app
может выбирать, вставлять и обновлять действие для "существующей" таблицы / раздела (например, mytable_partition_old
), как я и ожидал, пока все идет хорошо.
Однако учетная запись master
создает новый раздел таблицы после указанной выше команды GRANT
:
CREATE TABLE IF NOT EXISTS "mytable_partition_new" PARTITION OF mytable FOR VALUES IN('some_value');
После создания mytable_partition_new
пользователь app
получил «разрешение отклонено для этого отношения», выполнив команду INSERT INTO mytable_partition_new values (...)
.
Я понимаю, что это может быть решено с помощью проблемы GRANT SELECT, .... TO app
снова. Мой вопрос: есть ли лучший способ добиться этого?
(у нас нет выделенного администратора баз данных, и мы на некоторое время застряли в этой ситуации ..)