Baru-baru ini saya membuat tabel sebagai superuser termasuk kolom id serial, misalnya,
create table my_table
(
id serial primary key,
data integer
);
Karena saya ingin pengguna non-superuser saya memiliki akses tulis ke tabel itu, saya memberinya izin:
grant select, update, insert, delete on table my_table to writer;
Pada waktu yang acak setelah melakukannya, penyisipan yang dilakukan oleh pengguna itu mulai gagal karena pengguna tidak memiliki izin untuk mengubah urutan yang my_table_id_seq
terkait dengan kolom serial. Sayangnya saya tidak dapat mereproduksi di database saya saat ini.
Saya mengatasi hal ini dengan memberikan izin yang diperlukan kepada pengguna, seperti ini:
grant all on table my_table_id_seq to writer;
Adakah yang bisa membantu saya mengerti
- mengapa, pada titik tertentu, izin yang cukup sebelumnya mungkin mulai gagal?
- apa cara yang tepat untuk memberikan izin menulis untuk tabel dengan kolom serial?