2017-08-02 24 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

你不能那样做。

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

请注意,易失性函数也可以是只读的,稳定函数可能会产生副作用。所以我不认为基于波动性来做这件事是正确的。