GRANT
功能
该语句用于将一个或多个权限授予给角色或用户,以及将角色授予给用户或其他角色。
有关权限项的详细信息,参见权限项。
授权后,您可以通过 SHOW GRANTS 来查看权限授予的信息;通过 REVOKE 来撤销权限或角色。
在执行 GRANT 操作前,确保您已经在系统中创建了用户或角色。更多创建信息,参见 CREATE USER 和 CREATE ROLE。
提示
- 只有拥有
user_admin
角色的用户才可以将任意权限授予给任意用户和角色。 - 角色被赋予给用户之后,用户需要通过 SET ROLE 手动激活角色,方可利用角色的权限。如果希望用户登录时默认激活角色,则可以通过 ALTER USER 或 SET DEFAULT ROLE 为用户设置默认角色。如果希望系统内所有用户都能够在登录时默认激活所有权限,则可以设置全局变量
SET GLOBAL activate_all_roles_on_login = TRUE;
。 - 普通用户可以将自身拥有的授权中带有 WITH GRANT OPTION 关键字的权限赋予给其他用户和角色,参见示例七。
语法
授予权限给用户或者角色
System 相关
GRANT
{ CREATE RESOURCE GROUP | CREATE RESOURCE | CREATE EXTERNAL CATALOG | REPOSITORY | BLACKLIST | FILE | OPERATE | CREATE STORAGE VOLUME }
ON SYSTEM
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
Resource group 相关
GRANT
{ ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE GROUP <resource_group_name> [, <resource_group_name >,...] | ALL RESOURCE GROUPS}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
Resource 相关
GRANT
{ USAGE | ALTER | DROP | ALL [PRIVILEGES] }
ON { RESOURCE <resource_name> [, < resource_name >,...] | ALL RESOURCES}
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
Global UDF 相关
GRANT
{ USAGE | DROP | ALL [PRIVILEGES]}
ON { GLOBAL FUNCTION <function_name>(input_data_type) [, <function_name>(input_data_type),...]
| ALL GLOBAL FUNCTIONS }
TO { ROLE | USER} {<role_name>|<user_identity>} [ WITH GRANT OPTION ]
示例:GRANT usage ON GLOBAL FUNCTION a(string) to kevin;