2017-08-02 36 views
0

我想創建一個只讀的postgres角色,並且我希望該角色能夠使用不修改數據庫的函數,包括函數I可能會在未來創造。由於他們不修改數據庫(並滿足其他要求),我一直將這些函數標記爲STABLE或IMMUTABLE(如適用)。將所有STABLE或IMMUTABLE函數的EXECUTE授予默認的postgres角色

有沒有辦法將STABLE和IMMUTABLE函數的默認執行權限授予角色?類似於alter default privileges in schema public grant select on tables to <role_name>;

我正在使用postgresql 9.6。

回答

1

你不能那樣做。

您可以通過檢查目錄中函數的定義編寫事件觸發器來完成它。

請注意,易失性函數也可以是隻讀的,穩定函數可能會產生副作用。所以我不認爲基於波動性來做這件事是正確的。