使用 COMMUTATOR 和 NEGATOR 函数的 Execute 权限

重要: 如果您显式地授予对 SPL 函数的 Execute 权限,其为 UDR 的换向函数或否定函数,则在被授予者可使用任意函数之前,您还必须授予对换向函数或否定函数的那种权限。您不可随同 SPL 过程指定 COMMUTATOR 或 NEGATOR 修饰符。
下列示例演示对于函数的限制授权,以及将它的否定函数限定为一组用户。假设您创建下列否定函数对:
CREATE FUNCTION greater(y PERCENT, z PERCENT)
RETURNS BOOLEAN
NEGATOR= less(y PERCENT, z PERCENT);
. . .
CREATE FUNCTION less(y PERCENT, z PERCENT)
RETURNS BOOLEAN
NEGATOR= greater(y PERCENT, z PERCENT);
在缺省情况下,任何用户都可执行该函数和否定函数。下列函数仅允许 accounting 执行这些函数:
REVOKE EXECUTE ON FUNCTION greater FROM PUBLIC;
REVOKE EXECUTE ON FUNCTION less FROM PUBLIC;
GRANT accounting TO mary, jim, ted;
GRANT EXECUTE ON FUNCTION greater TO accounting;
GRANT EXECUTE ON FUNCTION less TO accounting;

用户可能接收附带 WITH GRANT OPTION 授权的 Execute 权限来将 Execute 权限授予其他用户。如果用户失去对例程的 Execute 权限,则还从通过那个用户授予了 Execute 权限的那些用户撤销 Execute 权限。

要获取更多信息,请参阅 GBase 8s SQL 指南:语法 中的 GRANT 和 REVOKE 语句描述。