【问题标题】:Grant Create Sequence in PostgreSQL在 PostgreSQL 中授予创建序列
【发布时间】:2025-12-06 11:25:02
【问题描述】:

是否可以仅授予用户/角色在 PostgreSQL 数据库/模式中创建/更改序列的权限,而不允许用户同时创建表?

我现在用

GRANT CREATE ON SCHEMA myschema TO "MyRole";

这使用户可以完全创建模式,但他不能删除或更改他不拥有的任何表。我的用例是我使用 Liquibase 预先设置数据库模式,并希望应用程序仅使用只能读取/写入数据的 db 用户。不幸的是,应用程序需要动态数量的序列,即应用程序必须能够在数据库/模式中创建新序列。

【问题讨论】:

    标签: postgresql sequence sql-grant


    【解决方案1】:

    唯一可能的方法是创建一个事件触发器,如果​​您创建的不是序列,则该触发器会引发错误。

    【讨论】:

      【解决方案2】:

      你可以的

      grant select on sequence my_sequence in schema my_schema to my_role_user
      

      https://www.postgresql.org/docs/14/sql-grant.html

      【讨论】: