【问题标题】:Postgres DB requires ownership to alter sequencePostgres DB 需要所有权才能更改序列
【发布时间】:2015-09-02 01:43:23
【问题描述】:

从 Postgres 服务器日志中,我不断看到这个错误:

2015-07-07 20:04:59 EDT [22757]: [1-1] user=cvt_web,db=powerup_betz ERROR:  must be owner of relation seq_id_cti_data
2015-07-07 20:04:59 EDT [22757]: [2-1] user=cvt_web,db=powerup_betz STATEMENT:  ALTER SEQUENCE mla.SEQ_ID_CTI_DATA INCREMENT BY 50
2015-07-07 20:04:59 EDT [22757]: [3-1] user=cvt_web,db=powerup_betz ERROR:  must be owner of relation seq_id_cti_data_map
2015-07-07 20:04:59 EDT [22757]: [4-1] user=cvt_web,db=powerup_betz STATEMENT:  ALTER SEQUENCE mla.SEQ_ID_CTI_DATA_MAP INCREMENT BY 50

显然您需要成为所有者才能更改序列,将所有权限授予cvt_web 用户不起作用,只有成为所有者才有效。谁能告诉我为什么会这样?

【问题讨论】:

  • 超级用户也可以做到。
  • 应用为什么要这么做? DDL 通常不需要作为 webapp 的正常生产用户运行。
  • 我尝试使用 @GeneratedValue(strategy=“IDENTITY”) 并且它现在可以工作了。

标签: database postgresql permissions


【解决方案1】:

从 postgresSQL ALTER SEQUENCE,您必须是序列的所有者才能使用 ALTER SEQUENCE 语句。授予用户 USAGE 权限只允许使用 currval 和 nextval 函数。

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    相关资源
    最近更新 更多