我想创建一个只读的postgres角色,我希望该角色能够使用不修改数据库的功能,包括我将来可能创建的功能。由于他们没有修改数据库(并满足其他要求),我一直将这些功能标记为STABLE或IMMUTABLE(视情况而定)。
有没有办法将STABLE和IMMUTABLE函数的默认执行权限授予角色?类似于alter default privileges in schema public grant select on tables to <role_name>;
我正在使用postgresql 9.6。
答案 0 :(得分:1)
你不能这样做。
您可以通过检查目录中函数的定义来编写事件触发器。
请注意,volatile函数也可以是只读函数,稳定函数可能会产生副作用。因此,我认为根据波动率尝试做到这一点无论如何都是正确的。