默认情况下,将所有STABLE或IMMUTABLE函数的EXECUTE授予postgres角色

时间:2017-08-02 20:48:38

标签: postgresql roles postgresql-9.6

我想创建一个只读的postgres角色,我希望该角色能够使用不修改数据库的功能,包括我将来可能创建的功能。由于他们没有修改数据库(并满足其他要求),我一直将这些功能标记为STABLE或IMMUTABLE(视情况而定)。

有没有办法将STABLE和IMMUTABLE函数的默认执行权限授予角色?类似于alter default privileges in schema public grant select on tables to <role_name>;

的东西

我正在使用postgresql 9.6。

1 个答案:

答案 0 :(得分:1)

你不能这样做。

您可以通过检查目录中函数的定义来编写事件触发器。

请注意,volatile函数也可以是只读函数,稳定函数可能会产生副作用。因此,我认为根据波动率尝试做到这一点无论如何都是正确的。