Недавно я создал таблицу в качестве суперпользователя, включая столбец с серийным идентификатором, например,
create table my_table
(
id serial primary key,
data integer
);
Поскольку я хотел, чтобы мой пользователь, не являющийся суперпользователем, имел доступ для записи в эту таблицу, я предоставил ей разрешения:
grant select, update, insert, delete on table my_table to writer;
В случайный момент времени после этого вставки, сделанные этим пользователем, начали давать сбой, потому что у пользователя не было разрешения изменить последовательность, my_table_id_seq
связанную с последовательным столбцом. К сожалению, я не могу воспроизвести это в моей текущей базе данных.
Я решил эту проблему, предоставив пользователю необходимые разрешения, например:
grant all on table my_table_id_seq to writer;
Может кто-нибудь помочь мне понять
- почему в какой-то момент ранее достаточные разрешения могут начать сбоить?
- Как правильно предоставить разрешение на запись для таблицы с последовательным столбцом?