我正在尝试查找EXECUTE
和之间的区别的参考ALL
:
GRANT { EXECUTE | ALL [ PRIVILEGES ] } ON { FUNCTION | ALL FUNCTIONS IN SCHEMA }...
但我能找到的只是文档所说的:
EXECUTE 允许使用指定的函数以及在函数之上实现的任何运算符。这是唯一适用于函数的特权类型。(此语法也适用于聚合函数。)
例如,我知道对于模式,ALL = CREATE + USAGE
但我想在参考函数时仔细检查:
这是唯一适用于函数的特权类型。
在上面的文档片段中暗示了函数ALL = EXECUTE
和:
GRANT ALL ON ALL FUNCTIONS...
相当于:
GRANT EXECUTE ON ALL FUNCTIONS...
唯一适用于函数的权限是 EXECUTE,所以当你使用 ALL 时,postgresql 将尝试应用所有函数可用的权限,现在这只是“EXECUTE”。
所以意思完全一样。
https://www.postgresql.org/docs/10/static/sql-grant.html
但是要小心,如果在新的 postgresql 版本中实现了更多类型的函数权限,这可能会出错(但我除了执行之外什么都看不到)。