GRANT(过程)
重要
您使用 CREATE PROCEDURE(外部) 创建的外部过程始终以 Linux dbadmin 权限运行。如果 dbadmin 或伪超级用户授予非 dbadmin 权限以使用 GRANT(过程) 运行过程,请注意非 dbadmin 用户以完全 Linux dbadmin 权限运行该过程。语法
GRANT { EXECUTE | ALL [ PRIVILEGES ] }
ON PROCEDURE [[database.]schema.]procedure( [arg-list] )[,...]
TO grantee[,...]
[ WITH GRANT OPTION ]
参数
EXECUTE
- 使被授予者能够运行指定的过程。
ALL [PRIVILEGES]
- 授予同时属于授予者的所有过程权限。授予者不能授予其自身缺少的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- 过程
- 目标过程。
- arg-list
- 过程实参的逗号分隔列表,其中每个实参指定如下:
[ argname ] argtype
如果过程未定义实参,请提供一个空的实参列表。
- grantee
指定向谁授予权限,可以为以下值之一:
WITH GRANT OPTION
授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限。
特权
非超级用户,为以下之一:
-
所有者
-
权限被授予者可以选择 (
WITH GRANT OPTION
) 将权限授予其他用户或角色
示例
将 tokenize
过程的 EXECUTE 权限授予用户 Bob
和 Jules
,以及授予角色 Operator
:
=> GRANT EXECUTE ON PROCEDURE tokenize(varchar) TO Bob, Jules, Operator;