作为角色的角色连接谁是已被授予执行功能的角色的“成员”我仍然会收到错误:
ERROR: 42501: permission denied for function xxx
关于其他功能,这不是问题。我试过更换功能和权限无济于事。我似乎能够调用该函数的唯一方法是当我授予public角色执行权限时,这当然不是我想要的,尤其是。因为它是一个plpythonu函数。
我在pgAdmin中注意到,Dependencies选项卡包含我已授予有问题功能执行权限的角色,而另一个功能(即工作)具有完全相同的GRANT,角色未显示在Dependencies选项卡中 - 那是什么意思?
答案 0 :(得分:0)
在调用函数的函数上指定了SECURITY DEFINER,从而使用外部函数的所有者调用函数。从外部函数的函数定义中删除SECURITY DEFINER解决了这个问题。