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
授予被授予者权限,以便将相同权限授予其他用户或角色的,也可以撤销它们。有关详细信息,请参阅授予权限。
特权
非超级用户,为以下之一:
-
所有权
-
对象的 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
再次授予 Bob
在 BobStore
位置的特权,指定节点:
=> 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