【问题标题】:Allow only triggers to update a column只允许触发器更新列
【发布时间】:2013-11-21 12:08:27
【问题描述】:

我有两个表,t1(foo)t2(bar),还有一个更新 t2.bar 时的触发器,它将 t1.foo 更新为其他内容。

起初我想通过在更新t1.foo 之前使用触发器来禁止对t1 的任何更新,该触发器总是引发异常。但是,这不会也阻止从第一个触发器开始的更改吗?

我该怎么做?

【问题讨论】:

  • 您是否试图阻止对带有触发器的表的访问?不要那样做。使用内置的安全系统(即登录名、角色等)
  • 如果解释一下,这听起来可能是一个很好的答案,以及一些使用理念。

标签: sql postgresql triggers privileges


【解决方案1】:

使用拥有触发器功能的“守护程序”角色(用于此专用目的的非登录角色)与SECURITY DEFINER 结合使用,并向其授予t1 的必要权限。

这些相关问题的详细信息:
Is there a way to disable updates/deletes but still allow triggers to perform them?
Allow insertion only from within a trigger

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 2013-05-26
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多