Права на создание партиций. Postgres

При попытке создать партицию в определенной схеме получаю ошибку - Must be owner of table. Команда: create table ... partition of... Обычные таблицы создаются и удаляются без проблем. Видимо, недостаточно каких-то прав именно для партиций?


Ответы (1 шт):

Автор решения: Мелкий

melkij=> create table measurement_y2006m04 partition of measurement for values from ('2006-04-01') to ('2006-05-01');

ERROR: must be owner of table measurement

Вообще мне сообщение об ошибке кажется вполне очевидно отвечающим, что именно не так.

Совершенно верно, для create table .. partition of .. необходимо быть владельцем этой самой партицированной таблицы. Как иначе? partition of не только создаёт новую таблицу, но и меняет структуру партицированной головы - её список партиций. Разрешать кому угодно создавать новые партиции - это серьёзная дыра безопасности.

PS: например, есть группа аналитиков. Для них создана отдельная схема, в которой пользователи могут делать свои таблички для сохранения своих результатов. И есть партицированная по дате создания записей табличка, к которой у этих пользователей права только на чтение. Далее, пользователь создаёт новую партицию в своей легитимной схеме. И таким образом через некоторое время получит (как пользователь-владелец партиции) права insert/update/delete в этой партиции. Здорово же?

→ Ссылка