GRANT(视图)
语法
GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
ON [[database.]schema.]view[,...]
TO grantee[,...]
[ WITH GRANT OPTION ]
参数
-
privilege
- 视图具有以下有效权限:
ALL [PRIVILEGES][EXTEND]
- 授予同时属于授予者的所有视图权限。授予者不能授予其自身缺少的权限。
您可以使用两个可选关键字限定
ALL
:-
PRIVILEGES
符合 SQL 标准。 -
EXTEND
扩展ALL
的语义以包括 ALTER 和 DROP 权限。未限定的ALL
会排除这两个权限。此选项可向后兼容 9.2.1 之前的 Vertica 版本中的GRANT ALL
用法。
-
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- 视图
- 目标视图。
- grantee
指定向谁授予权限,可以为以下值之一:
WITH GRANT OPTION
授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限。
非超级用户需要对架构的 USAGE 权限和以下权限之一:
-
所有者
-
权限被授予者可以选择 (
WITH GRANT OPTION
) 将权限授予其他用户或角色。
注意
作为视图所有者,只有在以下情况之一为真时,您才能授予其他用户对视图的 SELECT 权限:
-
您拥有视图的基表。
-
您对视图的基表具有 SELECT...WITH GRANT OPTION 权限。
示例
授予用户 Joe
对视图 ship
的所有权限。
=> CREATE VIEW ship AS SELECT * FROM public.shipping_dimension;
CREATE VIEW
=> GRANT ALL PRIVILEGES ON ship TO Joe;
GRANT PRIVILEGE