【问题标题】:PostgreSQL 8.4 function permissoning - I have to grant public execute otherwise get the error 42501 permisson deniedPostgreSQL 8.4 函数许可 - 我必须授予公共执行,否则会收到错误 42501 许可被拒绝
【发布时间】:2011-01-27 05:33:13
【问题描述】:

作为已被授予在函数上执行的角色的“成员”角色连接我仍然收到错误:

ERROR: 42501: permission denied for function xxx

在其他功能上没有问题。我尝试更换功能和权限无济于事。我似乎能够调用该函数的唯一方法是当我授予公共角色对其执行权限时,这当然不是我想要的,尤其是。因为它是一个plpythonu函数。

我注意到 pgAdmin 中的 Dependencies 选项卡包括我已授予问题函数执行权限的角色,而对于具有完全相同 GRANT 的另一个函数(正在工作),角色不会显示在 Dependencies 选项卡中- 那是怎么回事?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    SECURITY DEFINER 是在调用该函数的函数上指定的,因此使用外部函数的所有者调用该函数。从外部函数的函数定义中删除 SECURITY DEFINER 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2017-05-14
      • 1970-01-01
      • 2020-09-18
      相关资源
      最近更新 更多