SECURITY DEFINER - 函数创建者或所有者的特权?

时间:2016-10-23 06:04:00

标签: postgresql execute postgresql-9.4 database-security

Postgres的official docs表示使用SECURITY DEFINER定义的功能以创建的用户的权限运行。

但是其他来源(例如herehere)声称它是该功能的所有者的特权。

哪个是对的?

(适用于9.4 +)

1 个答案:

答案 0 :(得分:10)

通常(最初)创作者是所有者。但是,如果功能的所有者已更改,则security definer适用于新所有者。每the documentation

  

new_owner - 该函数的新所有者。请注意,如果该功能标记为SECURITY DEFINER,它将随后作为新所有者执行。