gpt4 book ai didi

postgresql - 在 postgres 中禁用 RETURNING on INSERT

转载 作者:行者123 更新时间:2023-11-29 13:17:36 26 4
gpt4 key购买 nike

postgres 可以使用 RETURNING 子句返回插入的主键。是否可以禁用该功能?我的意思是,如果有人试图使用 RETURNING 获取插入的 ID,它什么也不会返回。 (作为普通的 INSERT)?

最佳答案

我认为 INSERT 命令不能做到这一点。

一些备选方案:

  • 撤销用户的插入并创建一个带有“SECURITY DEFINER”的函数来执行 INSERT,或者
  • 使用列级权限:这里是来自 INSERT 命令的文档:

    Use of the RETURNING clause requires SELECT privilege on all columns mentioned in RETURNING. If you use the query clause to insert rows from a query, you of course need to have SELECT privilege on any table or column used in the query.

更新:使用列级权限至少做两件事:

  • 撤销选择列:REVOKE SELECT (restricted_col1, ...) ON TABLE testtable FROM testuser
  • 撤销插入列:REVOKE INSERT (restricted_col1, ...) ON TABLE testtable FROM testuser。在这种情况下,restricted_col1 必须具有 DEFAULT 值或必须没有 NOT NULL 约束。

关于postgresql - 在 postgres 中禁用 RETURNING on INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46715028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com