如何在默认情况下撤消PostgreSQL中函数的执行权限

时间:2016-10-27 21:59:03

标签: postgresql postgresql-9.5

我正在尝试使用命令ALTER DEFAULT PRIVILEGES...在PostgreSQL 9.5.4中设置默认权限。这在尝试授予权限时有效,但我无法弄清楚如何从默认情况下撤消函数的执行权限。我试过了:

ALTER DEFAULT PRIVILEGES FOR USER myAdmin IN SCHEMA public
    REVOKE EXECUTE ON FUNCTIONS FROM public;

这似乎对\ddp的输出没有影响。除非另有说明,否则有没有办法防止函数被所有者以外的用户执行?感谢。

1 个答案:

答案 0 :(得分:4)

如果您使用IN SCHEMA指定ALTER DEFAULT PRIVILEGES,则只能授予权限,但不能撤销

The documentation说:

  

每个模式指定的默认权限将添加到特定对象类型的全局默认权限。

因此,您必须通过将命令更改为:

来撤消全局默认权限
ALTER DEFAULT PRIVILEGES FOR USER myAdmin
    REVOKE EXECUTE ON FUNCTIONS FROM public;