最近、シリアルID列を含むテーブルをスーパーユーザーとして作成しました。
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;
誰かが私を理解するのに役立ちますか
- なぜ、ある時点で、以前は十分であった権限が失敗し始めるのでしょうか?
- シリアル列を持つテーブルに書き込み権限を付与する適切な方法は何ですか?