最近我确实以超级用户的身份创建了一个表,其中包括一个序列号列,例如,
create table my_table
(
id serial primary key,
data integer
);
Run Code Online (Sandbox Code Playgroud)
因为我希望我的非超级用户用户拥有对该表的写访问权限,所以我授予了它权限:
grant select, update, insert, delete on table my_table to writer;
Run Code Online (Sandbox Code Playgroud)
在这样做之后的随机时间点,该用户所做的插入开始失败,因为该用户没有修改my_table_id_seq
与串行列关联的序列的权限。不幸的是,我无法在我当前的数据库上重现它。
我通过授予用户所需的权限来解决这个问题,如下所示:
grant all on table my_table_id_seq to writer;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解