Récemment, j'ai créé une table en tant que superutilisateur, y compris une colonne d'identifiant série, par exemple,
create table my_table
(
id serial primary key,
data integer
);
Comme je voulais que mon utilisateur non superutilisateur ait un accès en écriture à cette table, je lui ai accordé des autorisations:
grant select, update, insert, delete on table my_table to writer;
À un moment aléatoire après cela, les insertions effectuées par cet utilisateur ont commencé à échouer car l'utilisateur n'avait pas l'autorisation de modifier la séquence my_table_id_seq
associée à la colonne série. Malheureusement, je ne peux pas reproduire cela sur ma base de données actuelle.
J'ai travaillé autour de cela en donnant à l'utilisateur l'autorisation requise, comme ceci:
grant all on table my_table_id_seq to writer;
Quelqu'un peut-il m'aider à comprendre
- pourquoi, à un moment donné, les autorisations précédemment suffisantes pourraient commencer à échouer?
- quelle est la bonne façon d'accorder la permission d'écriture pour une table avec une colonne série?