0

有角色sequence_owner。这是仅处理序列的特殊技术角色。

create role sequence_owner;
GRANT sequence_owner TO administrator;
GRANT USAGE, SELECT, UPDATE  ON ALL SEQUENCES IN SCHEMA schema1 TO sequence_owner;

还有几个具有角色的用户administrator:user1,...user42

GRANT administrator TO user1;
GRANT administrator TO user42;

使用 user1 我可以创建序列:

create sequence schema1.test_sequence;

但我不能将所有者更改为特殊sequence_owner角色

alter sequence schema1.test_sequence owner to sequence_owner;

出现错误:错误:架构 schema1 的权限被拒绝

我不会使用:

GRANT CREATE, USAGE ON SCHEMA schema1 to sequence_owner

因为在这种情况下,这个角色sequence_owner将拥有比它必须拥有的更多的特权。

4

1 回答 1

0

https://www.postgresql.org/docs/11/sql-altersequence.html

这是不可能的: 您必须拥有序列才能使用 ALTER SEQUENCE。要更改序列的架构,您还必须对新架构具有 CREATE 权限。要更改所有者,您还必须是新拥有角色的直接或间接成员,并且该角色必须对序列的架构具有 CREATE 特权。

于 2020-12-07T19:49:20.943 回答