这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

GRANT 语句

GRANT 语句将数据库对象的权限授予用户角色

1 - GRANT(身份验证)

将身份验证记录与一个或多个用户角色相关联。

语法

GRANT AUTHENTICATION auth‑method‑name TO grantee[,...]

参数

auth‑method‑name
与一个或多个用户或角色关联的身份验证方法的名称。
grantee
指定与身份验证方法关联的人员,为以下几项之一:

特权

超级用户

示例

  • v_ldap 身份验证与用户 jsmith 关联:

    => GRANT AUTHENTICATION v_ldap TO jsmith;
    
  • v_gss 身份验证与角色 DBprogrammer 关联:

    
    => CREATE ROLE DBprogrammer;
    => GRANT AUTHENTICATION v_gss TO DBprogrammer;
    
  • 将客户端身份验证方法 v_localpwd 与角色 PUBLIC 关联,默认情况下会被分配给所有用户:

    => GRANT AUTHENTICATION v_localpwd TO PUBLIC;
    

另请参阅

2 - GRANT(数据库)

将数据库权限授予用户角色

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] }
   ON DATABASE db‑spec
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

privilege
以下权限对数据库有效:
  • CREATE:创建架构。

  • TEMP:创建临时表。默认情况下,会通过所有用户的 DEFAULT 角色授予其此权限。

ALL [PRIVILEGES]
授予同时属于授予者的所有数据库权限。授予者不能授予其自身缺少的权限。

可选关键字 PRIVILEGES 符合 SQL 标准。

db‑spec

指定当前数据库,设置为数据库名称或DEFAULT

grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

特权

非超级用户:权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

以下示例授予用户 Fred 在当前数据库中创建架构的权利。

=> GRANT CREATE ON DATABASE DEFAULT TO Fred;

另请参阅

3 - GRANT(密钥)

将加密密钥权限授予用户或角色。

要撤销授予的权限,请参阅 REVOKE(密钥)

对于自己未拥有的加密对象,超级用户的访问权限有限。有关详细信息,请参阅数据库对象权限

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] } ON KEY
    key_name[,...]
    TO grantee[,...]
    [ WITH GRANT OPTION ]

参数

privilege

权限,可为以下之一:

  • USAGE:允许用户执行以下操作:

    密钥的 USAGE 还为将其用作私钥的证书提供了隐式 USAGE 权限。用户还可以从密钥或证书的所有权中获取此类权限。证书的 USAGE 权限允许用户执行以下操作:

    • 查看证书的内容。

    • 将证书添加(通过使用 CREATEALTER)到 TLS 配置。

    • 导入由 CA 签名的证书时重复使用 CA 证书。例如,如果用户导入证书链 A > B > C 且具有 B 的 USAGE,则数据库会重用 B(而不是创建 B 的副本)。

    • 指定 CA 证书已签署导入的证书。例如,如果证书 B 已签署证书 C,则 B 的 USAGE 允许用户导入 C 并指定它是 SIGNED BYB

  • DROP

  • ALTER:允许用户在各自的系统表中查看密钥及其关联的证书,但不能查看其内容。

key_name
目标密钥
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

特权

非超级用户:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

以下示例将私钥的 USAGE 权限授予用户,该权限允许用户将自签名 CA 证书添加到 server TLS 配置:

=> CREATE KEY new_ca_key TYPE 'RSA' LENGTH 2048;
=> CREATE CA CERTIFICATE new_ca_cert
    SUBJECT '/C=US/ST=Massachusetts/L=Cambridge/O=Micro Focus/OU=Vertica/CN=Vertica example CA'
    VALID FOR 3650
    EXTENSIONS 'authorityKeyIdentifier' = 'keyid:always,issuer', 'nsComment' = 'new CA'
    KEY new_ca_key;

=> CREATE USER u1;
=> GRANT USAGE ON KEY new_ca_key TO u1;
=> GRANT ALTER ON TLS CONFIGURATION data_channel TO u1;

=> \c - u1

=> ALTER TLS CONFIGURATION data_channel ADD CA CERTIFICATES new_ca_cert;

-- clean up:
=> \c
=> ALTER TLS CONFIGURATION data_channel REMOVE CA CERTIFICATES new_ca_cert;
=> DROP KEY new_ca_key CASCADE;
=> DROP USER u1;

4 - GRANT(库)

将一个或多个库的权限授予用户角色

例如,当您使用连接器框架服务时,您可能需要授予一个用户库的使用权限,才可以设置 UD 会话参数。有关详细信息,请参阅实施 CFS

语法

GRANT privilege
   ON LIBRARY [[database.]schema.]library[,...]
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

privilege
要授予的权限,为以下几项之一:
  • USAGE:授予对指定库中函数的访问权限。

  • DROP:授予删除被授予者创建的库的权限。

  • ALL [PRIVILEGES] [EXTEND]:授予同时属于授予者的所有库权限。授予者不能授予其自身缺少的权限。

您可以使用两个可选关键字限定 ALL

  • PRIVILEGES 符合 SQL 标准。

  • EXTEND 扩展 ALL 的语义以包含 DROP 权限。未限定的 ALL 不包括此权限。此选项可向后兼容 9.2.1 之前的 Vertica 版本中的 GRANT ALL 用法。

[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

目标库。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

非超级用户需要对架构的 USAGE 权限和以下权限之一:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

MyFunctions 库的 USAGE 权限授予 Fred

=> GRANT USAGE ON LIBRARY MyFunctions TO Fred;

另请参阅

5 - GRANT(模型)

将模型的使用权限授予用户角色

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
   ON MODEL [[database.]schema.]model‑name[,...]
   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。如果指定一个数据库,它必须是当前数据库。

model‑name
授予其权限的模型。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

非超级用户需要对架构的 USAGE 权限和以下权限之一:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

此示例将 mySvmClassModel 模型的 USAGE 权限授予 user1:

=> GRANT USAGE ON MODEL mySvmClassModel TO user1;

另请参阅

6 - GRANT(过程)

存储过程外部过程的权限授予用户角色

语法

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 权限授予用户 BobJules,以及授予角色 Operator

=> GRANT EXECUTE ON PROCEDURE tokenize(varchar) TO Bob, Jules, Operator;

另请参阅

7 - GRANT(资源池)

将资源池的 USAGE 权限授予用户角色。用户可以通过 ALTER USERSET SESSION RESOURCE POOL 访问其资源池。

语法

GRANT USAGE
   ON RESOURCE POOL resource-pool[,...]
   [FOR SUBCLUSTER subcluster | FOR CURRENT SUBCLUSTER]
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

USAGE
使被授予者能够访问指定的资源池。
ALL [PRIVILEGES]
授予同时属于授予者的所有资源池权限。授予者不能授予其自身缺少的权限。

可选关键字 PRIVILEGES 符合 SQL 标准。

resource-pool
授予其指定权限的资源池。
subcluster
资源池的子群集。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

特权

非超级用户,为以下之一:

示例

授予用户 Joe 对资源池 Joe_pool 的 USAGE 权限。

=> CREATE USER Joe;
CREATE USER
=> CREATE RESOURCE POOL Joe_pool;
CREATE RESOURCE POOL
=> GRANT USAGE ON RESOURCE POOL Joe_pool TO Joe;
GRANT PRIVILEGE

授予用户 Joe 对子群集 sub1 的资源池 Joe_pool 的 USAGE 权限。

=> GRANT USAGE on RESOURCE POOL Joe_pool FOR SUBCLUSTER sub1 TO Joe;
GRANT PRIVILEGE

另请参阅

8 - 授权(角色)

将角色分配给用户或其他角色

语法

GRANT role[,...] TO grantee[,...] [ WITH ADMIN OPTION ]

参数

角色
要授予的角色
grantee
被授予指定角色的用户或角色,为以下几项之一:
WITH ADMIN OPTION
授予被授予者将指定角色授予其他用户或角色的权限。有关详细信息,请参阅授予权限

特权

非超级用户:如果使用 WITH GRANT OPTION,则可以将相同的角色授予其他用户或角色。

示例

请参阅授予数据库角色

另请参阅

REVOKE(角色)

9 - GRANT(架构)

将架构权限授予用户角色。默认情况下,只有超级用户和架构所有者才拥有以下架构权限:

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
   ON SCHEMA [database.]schema[,...]
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

privilege
以下权限之一:
  • USAGE:允许访问指定架构中的对象。然后可以授予被授予者对这些架构中的单个对象的访问权限,例如使用 GRANT TABLEGRANT VIEW

  • CREATE:在指定架构中创建和重命名对象,以及从其他架构中移动对象。

您还可以授予以下架构权限,以供表及其投影以及该架构的视图继承。如果数据库架构启用了继承,这些权限会在创建时自动授予这些对象:

  • SELECT:查询表和视图。默认情况下,会将 SELECT 权限授予 PUBLIC 角色。

  • INSERT:插入行,或者使用 COPY 将数据加载到表中。

  • UPDATE:更新表行。

  • DELETE:删除表行。

  • REFERENCES:在此表上创建外键约束。必须对引用的和被引用的表上都设置此权限。

  • TRUNCATE:截断表内容。表的非所有者也可以对表执行以下分区操作:

  • ALTER:使用 ALTER TABLEALTER VIEW 分别修改表和视图的 DDL。

  • DROP:删除表和视图。

ALL [PRIVILEGES][EXTEND]
授予 USAGE AND CREATE 权限。必须显式授予继承的权限。

您可以使用两个可选关键字限定 ALL

  • PRIVILEGES 符合 SQL 标准。

  • EXTEND 扩展 ALL 的语义以包括 ALTER 和 DROP 权限。未限定的 ALL 会排除这两个权限。此选项可向后兼容 9.2.1 之前的 Vertica 版本中的 GRANT ALL 用法。

[database.]schema
指定目标架构。如果指定一个数据库,它必须是当前数据库。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

特权

非超级用户,为以下几项之一:

  • 架构所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

授予用户 Joe 对架构 online_sales 的 USAGE 权限。

=> CREATE USER Joe;
CREATE USER
=> GRANT USAGE ON SCHEMA online_sales TO Joe;
GRANT PRIVILEGE

另请参阅

10 - GRANT(序列)

序列权限授予用户角色

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
   ON {
     SEQUENCE [[database.]schema.]sequence[,...]
     | ALL SEQUENCES IN SCHEMA [database.]schema[,...] }
   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。如果指定一个数据库,它必须是当前数据库。

SEQUENCE sequence
指定授予其权限的序列。
ALL SEQUENCES IN SCHEMA schema
授予对架构 schema 中所有序列的指定权限。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

非超级用户需要对架构的 USAGE 权限和以下权限之一:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

此示例说明如何授予用户 Joe 对序列 my_seq 的所有权限。

=> CREATE SEQUENCE my_seq START 100;
CREATE SEQUENCE
=> GRANT ALL PRIVILEGES ON SEQUENCE my_seq TO Joe;
GRANT PRIVILEGE

另请参阅

11 - GRANT(存储位置)

将用户定义的存储位置的权限授予用户角色。有关详细信息,请参阅创建存储位置

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] }
   ON LOCATION 'path' [ ON node ]
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

privilege
以下权限对存储位置有效:
  • READ:将数据从存储位置中的文件复制到表。

  • WRITE:将数据从数据库导出到存储位置。被授予者获得 WRITE 特权后,还可以将 COPY 语句被拒绝的数据和异常文件保存到存储位置。

ALL [PRIVILEGES]
授予同时属于授予者的所有存储位置权限。授予者不能授予其自身缺少的权限。

可选关键字 PRIVILEGES 符合 SQL 标准。

ON LOCATION 'path' [ ON node]
指定存储位置的路径名称挂载点。如果通过 ON NODE 进行限定,Vertica 将授予对位于节点上的存储位置的访问权限。

如果未指定节点,则授予操作适用于指定路径上的所有节点。所有节点必须在指定路径上;否则,整个授权操作将回退。

grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

特权

非超级用户,为以下之一:

示例

创建存储位置:

=> CREATE LOCATION '/home/dbadmin/UserStorage/BobStore' NODE 'v_mcdb_node0007' USAGE 'USER';
CREATE LOCATION

授予用户 Bob/BobStore 位置的所有可用权限:

=> GRANT ALL ON LOCATION '/home/dbadmin/UserStorage/BobStore' TO Bob;
GRANT PRIVILEGE

取消授予 Bob 的全部存储位置特权:

=> REVOKE ALL ON LOCATION '/home/dbadmin/UserStorage/BobStore' FROM Bob;
REVOKE PRIVILEGE

再次授予 BobBobStore 位置的特权,指定节点:

=> GRANT ALL ON LOCATION '/home/dbadmin/UserStorage/BobStore' ON v_mcdb_node0007 TO Bob;
GRANT PRIVILEGE

取消授予 Bob的全部存储位置特权:

=> REVOKE ALL ON LOCATION '/home/dbadmin/UserStorage/BobStore' ON v_mcdb_node0007 FROM Bob;
REVOKE PRIVILEGE

另请参阅

12 - GRANT(表)

将表权限授予用户角色。同时必须将表架构的 USAGE 权限授予用户。

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
   ON {
     [ TABLE ] [[database.]schema.]table[,...]
     | ALL TABLES IN SCHEMA [database.]schema[,...] }
   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。如果 schema 是除 public 以外的任何其他架构,则必须提供架构名称。例如:
myschema.thisDbObject

这里有一个例外:您可以指定系统表但不指定其架构名称。

如果指定一个数据库,它必须是当前数据库。

TABLE table
指定授权的表。
ON ALL TABLES IN SCHEMA schema
授予对架构 schema 中所有表和视图的指定权限。
grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

非超级用户需要对架构的 USAGE 权限和以下权限之一:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

授予用户 Joe 对表 customer_dimension 的所有权限:

=> CREATE USER Joe;
CREATE USER
=> GRANT ALL PRIVILEGES ON TABLE customer_dimension TO Joe;
GRANT PRIVILEGE

授予用户 Joe 对所有系统表的 SELECT 权限:

=> GRANT SELECT on all tables in schema V_MONITOR, V_CATALOG TO Joe;
GRANT PRIVILEGE

另请参阅

13 - GRANT(用户定义的扩展)

用户定义的扩展 (UDx) 的权限授予用户角色

语法

GRANT { privilege[,...] | ALL [ PRIVILEGES ] [ EXTEND ] }
   ON {
       UDx‑type [[database.]schema.]function( [arg‑list] )[,...]
       | ALL FUNCTIONS IN SCHEMA schema[,...] }
   TO grantee[,...]
   [ WITH GRANT OPTION ]

参数

privilege
以下权限对用户定义的扩展有效:
ALL [PRIVILEGES] [EXTEND]
授予同时属于授予者的所有函数权限。授予者不能授予其自身缺少的权限

您可以使用两个可选关键字限定 ALL

  • PRIVILEGES 符合 SQL 标准。

  • EXTEND 扩展 ALL 的语义以包括 ALTER 和 DROP 权限。未限定的 ALL 会排除这两个权限。此选项可向后兼容 9.2.1 之前的 Vertica 版本中的 GRANT ALL 用法。

ON UDx‑type
用户定义的扩展 (UDx) 的类型,为以下几项之一:
  • FUNCTION (标量函数)

  • AGGREGATE FUNCTION

  • ANALYTIC FUNCTION

  • TRANSFORM FUNCTION

  • FILTER

  • PARSER

  • SOURCE

[database.]schema

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

function
要授予其权限的用户定义函数的名称。
ON ALL FUNCTIONS IN SCHEMAschema
授予对指定架构中所有函数的权限。
arg-list
对所有多态函数都是必需的,是一个逗号分隔的函数实参列表,其中每个实参指定如下:
[ argname ] argtype

如果过程未定义实参,请提供一个空的实参列表。

grantee

指定向谁授予权限,可以为以下值之一:

WITH GRANT OPTION

授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限

非超级用户需要对架构的 USAGE 权限和以下权限之一:

  • 所有者

  • 权限被授予者可以选择 (WITH GRANT OPTION) 将权限授予其他用户或角色。

示例

myzeroifnullSQL 函数的 EXECUTE 权限授予用户 BobJules 以及角色 Operator。该函数需要一个整数参数:

=> GRANT EXECUTE ON FUNCTION myzeroifnull (x INT) TO Bob, Jules, Operator;

zero-schema 架构中所有函数的 EXECUTE 权限授予用户 Bob

=> GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA zero-schema TO Bob;

tokenize转换函数的 EXECUTE 权限授予用户 Bob 和角色 Operator

=> GRANT EXECUTE ON TRANSFORM FUNCTION tokenize(VARCHAR) TO Bob, Operator;

ExampleSource() 源的 EXECUTE 权限授予用户 Alice

=> CREATE USER Alice;
=> GRANT USAGE ON SCHEMA hdfs TO Alice;
=> GRANT EXECUTE ON SOURCE ExampleSource() TO Alice;

ExampleSource() 源的所有权限授予用户 Alice

=> GRANT ALL ON SOURCE ExampleSource() TO Alice;

将多态函数 Pagerank 的所有权限授予 dbadmin 角色:

=> GRANT ALL ON TRANSFORM FUNCTION Pagerank(z varchar) to dbadmin;

另请参阅

14 - 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) 将权限授予其他用户或角色。

示例

授予用户 Joe 对视图 ship 的所有权限。

=> CREATE VIEW ship AS SELECT * FROM public.shipping_dimension;
CREATE VIEW
=> GRANT ALL PRIVILEGES ON ship TO Joe;
GRANT PRIVILEGE

另请参阅

REVOKE(视图)