PostgreSQL 中函数的所有权限中包含什么?

dw8*_*547 7 postgresql permissions functions

我正在尝试查找EXECUTEALL之间的区别的参考资料:

GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { FUNCTION | ALL FUNCTIONS IN SCHEMA }...
Run Code Online (Sandbox Code Playgroud)

但我能找到的只是文档所说的:

EXECUTE 允许使用指定的函数以及使用在该函数之上实现的任何运算符。这是唯一适用于函数的特权类型。(此语法也适用于聚合函数。)

例如,我知道对于模式ALL = CREATE + USAGE,但我想在函数引用中仔细检查:

这是唯一适用于函数的特权类型。

在上面的文档片段中暗示了对于函数ALL = EXECUTE并且:

GRANT ALL ON ALL FUNCTIONS...
Run Code Online (Sandbox Code Playgroud)

相当于:

GRANT EXECUTE ON ALL FUNCTIONS...
Run Code Online (Sandbox Code Playgroud)

Luc*_*ini 4

唯一适用于函数的权限是 EXECUTE,因此当您使用 ALL 时,postgresql 将尝试应用所有可用于函数的权限,而现在这只是“EXECUTE”。

所以意思是完全一样的。

执行

允许使用指定的函数以及在该函数之上实现的任何运算符。这是唯一适用于函数的特权类型。

https://www.postgresql.org/docs/10/static/sql-grant.html

但要小心,如果在新的 postgresql 版本中实现更多类型的函数权限,这可能会出错(但除了执行之外我看不到其他内容)。