【问题标题】:Grant EXECUTE on all STABLE or IMMUTABLE functions to a postgres role by default默认情况下,将所有 STABLE 或 IMMUTABLE 函数的 EXECUTE 授予 postgres 角色
【发布时间】:2018-01-10 06:19:32
【问题描述】:

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

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

我正在使用 postgresql 9.6。

【问题讨论】:

    标签: postgresql roles postgresql-9.6


    【解决方案1】:

    你不能那样做。

    您可以通过检查目录中函数的定义来编写一个事件触发器来执行此操作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 2021-04-07
      • 2021-09-08
      • 2019-05-21
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      相关资源
      最近更新 更多