2011-01-27 23 views
0

作爲角色的角色已被授予對某個功能執行的角色,我仍然得到錯誤:PostgreSQL 8.4功能許可 - 我必須授予公共執行,否則獲得錯誤42501權限被拒絕

ERROR: 42501: permission denied for function xxx 

關於其他功能,這不是問題。我試圖替換功能和權限無濟於事。我似乎可以調用該函數的唯一方式是當我授予公共角色對它的執行權限時,這當然不是我想要的,尤其是,因爲它是一個plpythonu函數。

我注意到在pgAdmin中,依賴關係選項卡包含我已經授予對有問題功能的執行權限的角色,而使用具有完全相同GRANT的角色的另一個功能(即正在工作)不會顯示在依賴關係中選項卡 - 那是什麼?

回答

0

SECURITY DEFINER在調用函數的函數中指定,因此與外函數的所有者一起調用該函數。從外部功能的功能定義中刪除SECURITY DEFINER解決了問題。

相關問題