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

另请参阅