【问题标题】:Postgres tech role for sequence onlyPostgres 技术角色仅适用于序列
【发布时间】:2021-03-19 02:45:18
【问题描述】:

有角色 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 将拥有比它必须拥有的更多的权限。

【问题讨论】:

    标签: sql postgresql postgresql-9.5 database-sequence


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 2012-02-03
      • 2018-09-28
      • 2011-09-14
      • 2010-12-21
      • 2013-01-19
      • 2019-10-19
      相关资源
      最近更新 更多