REVOKE 语句
- 1: REVOKE(身份验证)
- 2: REVOKE(数据库)
- 3: REVOKE(密钥)
- 4: REVOKE(库)
- 5: REVOKE(模型)
- 6: REVOKE(过程)
- 7: REVOKE(资源池)
- 8: REVOKE(角色)
- 9: REVOKE(架构)
- 10: REVOKE(序列)
- 11: REVOKE(存储位置)
- 12: REVOKE(表)
- 13: REVOKE(用户定义的扩展)
- 14: REVOKE(视图)
1 - REVOKE(身份验证)
语法
REVOKE AUTHENTICATION auth‑method‑name FROM grantee[,...]
参数
特权
超级用户
示例
-
从用户
jsmith
撤销v_ldap
身份验证:=> REVOKE AUTHENTICATION v_ldap FROM jsmith;
-
从角色
DBprogrammer
撤销v_gss
身份验证:=> REVOKE AUTHENTICATION v_gss FROM DBprogrammer;
-
撤销
localpwd
作为默认客户端身份验证方法:=> REVOKE AUTHENTICATION localpwd FROM PUBLIC;
另请参阅
2 - REVOKE(数据库)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON DATABASE db‑spec
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
- privilege
- 要撤销的数据库权限,为以下几项之一:
-
CREATE
:创建架构。 -
TEMP
:创建临时表。
-
ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有数据库权限。用户无法撤销其自身没有的权限。
支持使用可选关键字
PRIVILEGES
以符合 SQL 标准。 -
ON DATABASE db‑spec
指定当前数据库,设置为数据库名称或
DEFAULT
。-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Fred
在当前数据库中创建架构的权限:
=> REVOKE CREATE ON DATABASE DEFAULT FROM Fred;
撤销用户 Fred
在当前数据库中创建临时表的权限:
=> REVOKE TEMP ON DATABASE DEFAULT FROM Fred;
另请参阅
3 - REVOKE(密钥)
撤销用户或角色对加密密钥的权限。
重要
因为证书依赖于它们的底层密钥,所以当与 DROP KEY...CASCADE 一起使用时,对密钥的 DROP 权限有效地充当其关联证书的 DROP 权限。要授予密钥权限,请参阅 GRANT(密钥)。
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] } ON KEY
key_name[,...]
FROM user[,...]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
- privilege
权限,可为以下之一:
-
USAGE:允许用户执行以下操作:
密钥的 USAGE 还为将其用作私钥的证书提供了隐式 USAGE 权限。用户还可以从密钥或证书的所有权中获取此类权限。证书的 USAGE 权限允许用户执行以下操作:
-
- key_name
- 目标密钥。
- 用户
指定向谁授予权限,可以为以下值之一:
特权
非超级用户:
-
所有者
-
权限被授予者可以选择 (
WITH GRANT OPTION
) 将权限授予其他用户或角色。
示例
以下示例撤销用户对密钥(以及扩展的相关证书)的 DROP 权限:
=> REVOKE USAGE ON KEY new_key FROM u1;
REVOKE PRIVILEGE
4 - REVOKE(库)
语法
REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] }
ON LIBRARY [[database.]schema.]library[,...]
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
USAGE
- 撤销对指定库的访问权限。
重要
必须单独撤销对这些库中函数的权限。 ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有库权限。用户无法撤销其自身没有的权限。可选关键字
PRIVILEGES
符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
库
- 目标库。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
示例
这些命令将展示如何新建一个库,然后如何授予和撤销用户 Fred
对该库的 USAGE 权限。
=> CREATE LIBRARY MyFunctions AS 'home/dbadmin/my_functions.so';
=> GRANT USAGE ON LIBRARY MyFunctions TO Fred;
=> REVOKE USAGE ON LIBRARY MyFunctions FROM Fred;
另请参阅
5 - REVOKE(模型)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON MODEL [[database.]schema.]model‑name [,...]
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
USAGE
- 以下权限之一:
ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有模型权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
model‑name
- 目标模型的名称。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Fred
对模型 mySvmClassModel
的 USAGE 权限:
=> REVOKE USAGE ON mySvmClassModel FROM Fred;
另请参阅
6 - REVOKE(过程)
语法
REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL PRIVILEGES }
ON PROCEDURE [[database.]schema.]procedure( [argument-list] )[,...]
FROM grantee[,...]
[ CASCADE ]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
EXECUTE
- 撤销被授予者运行指定过程的能力。
ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有过程权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
过程
- 目标过程。
-
argument-list
- 过程实参的逗号分隔列表,其中每个实参指定如下:
[argname] argtype
如果过程未定义实参,请提供一个空的实参列表。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
此示例将撤销用户 Bob
对 tokenize
过程的执行权限。
=> REVOKE EXECUTE ON PROCEDURE tokenize(varchar) FROM Bob;
另请参阅
7 - REVOKE(资源池)
Vertica 在运行时检查资源池权限。撤销用户对资源池的权限可立即对用户的当前会话产生影响。例如,用户查询可能需要使用资源池的 USAGE 权限。如果您撤销该用户的这些权限,则该用户随后执行该查询的尝试将失败并返回错误消息。
语法
REVOKE [ GRANT OPTION FOR ] { USAGE | ALL PRIVILEGES }
ON RESOURCE POOL resource-pool[,...]
[FOR SUBCLUSTER subcluster | FOR CURRENT SUBCLUSTER]
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
USAGE
- 撤销被授予者对指定资源池的访问权限。
ALL PRIVILEGES
- 撤销同时属于调用者的所有资源池权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
resource-pool
- 目标资源池。
-
subcluster
- 资源池的子群集。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Joe
对资源池 Joe_pool
的 USAGE 权限。
=> REVOKE USAGE ON RESOURCE POOL Joe_pool FROM Joe;
REVOKE PRIVILEGE
撤销用户 Joe
对子群集 sub1
的资源池 Joe_pool
的 USAGE 权限。
=> REVOKE USAGE ON RESOURCE POOL Joe_pool FOR SUBCLUSTER sub1 FROM Joe;
REVOKE PRIVILEGE
另请参阅
8 - REVOKE(角色)
语法
REVOKE [ ADMIN OPTION FOR ] role[,...]
FROM grantee[,...]
[ CASCADE ]
参数
ADMIN OPTION FOR
- 撤销被授予者将指定角色分配给其他用户或角色的权限。被授予者的当前角色不受影响。如果忽略此子句,Vertica 将撤销角色分配权限和当前角色。
- 角色
- 要撤销的角色。
- grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
特权
以下几项之一:
-
超级用户
-
可以选择 (
WITH ADMIN OPTION
) 将这些权限扩展到其他用户的权限被授予者
示例
此示例显示了如何撤销 dbadmin 用户的 pseudosuperuser 角色:
=> REVOKE pseudosuperuser from dbadmin;
此示例显示了如何撤销 dbadmin 用户对 pseudosuperuser 角色的管理访问权限。ADMIN OPTION 命令不会移除 pseudosuperuser 角色。
=> REVOKE ADMIN OPTION FOR pseudosuperuser FROM dbadmin;
注意
如果尚未将尝试撤销的角色授予用户,Vertica 将返回一则通知:
=> REVOKE commentor FROM Sue;
NOTICE 2022: Role "commentor" was not already granted to user "Sue"
REVOKE ROLE
另请参阅
9 - REVOKE(架构)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON SCHEMA [database.]schema[,...]
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
- privilege
- 要撤销的架构权限,为以下几项之一:
-
USAGE:访问指定架构中的对象。
-
CREATE:在指定的架构中创建对象。
您还可以撤销表和视图在创建时从该架构继承的权限。当您撤销在架构级别继承的权限时,Vertica 会自动将撤销应用于继承这些权限的所有表和视图。
-
SELECT:查询表和视图。默认情况下,会将 SELECT 权限授予 PUBLIC 角色。
-
INSERT:插入行,或者使用
COPY
将数据加载到表中。注意
COPY FROM STDIN
允许具有 INSERT 权限的用户使用,而COPY FROM 文件
需要管理员特权。 -
UPDATE:更新表行。
-
DELETE:删除表行。
-
REFERENCES:在此表上创建外键约束。必须对引用的和被引用的表上都设置此权限。
-
TRUNCATE:截断表内容。表的非所有者也可以对表执行以下分区操作:
-
ALTER:使用
ALTER TABLE
和ALTER VIEW
分别修改表和视图的 DDL。 -
DROP:删除表和视图。
-
ALL [PRIVILEGES]
- 撤销 USAGE AND CREATE 权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。重要
必须显式撤销继承的权限。 -
[database.]schema
- 要撤销其权限的架构。如果指定一个数据库,它必须是当前数据库。
- grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Joe
对架构 online_sales
的 USAGE 权限。
=> REVOKE USAGE ON SCHEMA online_sales FROM Joe;
REVOKE PRIVILEGE
另请参阅
10 - REVOKE(序列)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON {
SEQUENCE [[database.]schema.]sequence[,...]
| ALL SEQUENCES IN SCHEMA [database.]schema[,...] }
FROM grantee[,...]
[ CASCADE ]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
-
privilege
- 以下权限之一:
-
ALTER:使用
ALTER SEQUENCE
修改序列的 DDL -
DROP:使用
DROP SEQUENCE
删除此序列。
ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有序列权限。用户无法撤销其自身没有的权限。
支持使用可选关键字
PRIVILEGES
以符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
SEQUENCE sequence
- 指定要撤销权限的序列。
-
ALL SEQUENCES IN SCHEMA schema
- 撤销对架构 schema 中所有序列的指定权限。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
-
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Joe
对序列 my_seq
的权限。
=> REVOKE ALL PRIVILEGES ON SEQUENCE my_seq FROM Joe;
REVOKE PRIVILEGE
另请参阅
11 - REVOKE(存储位置)
撤销用户和角色对用户定义的存储位置的权限。有关详细信息,请参阅创建存储位置。
注意
如果存储位置已删除,Vertica 会自动撤销其所有权限。语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON LOCATION 'path' [ ON node ]
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
- privilege
- 以下权限之一:
-
READ
:将数据从存储位置中的文件复制到表。 -
WRITE
:将数据从数据库导出到存储位置。被授予者获得WRITE
特权后,还可以将COPY
语句被拒绝的数据和异常文件保存到存储位置。
-
ALL [PRIVILEGES]
- 撤销同时属于调用者的所有存储位置权限。用户无法撤销其自身没有的权限。
支持使用可选关键字
PRIVILEGES
以符合 SQL 标准。 -
ON LOCATION 'path' [ ON node ]
- 指定存储位置的路径名称挂载点。如果通过
ON NODE
进行限定,Vertica 将撤销对节点上的存储位置的访问权限。如果未指定节点,撤销操作将适用于指定路径上的所有节点。所有节点必须位于指定路径上;否则,整个撤销操作将回退。
- grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
请参阅GRANT(存储位置)。
另请参阅
授予和撤销权限12 - REVOKE(表)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON {
[ TABLE ] [[database.]schema.]table[,...]
| ALL TABLES IN SCHEMA [database.]schema[,...] }
FROM grantee[,...]
[ CASCADE ]
参数
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
-
privilege
- 以下权限之一:
ALL [PRIVILEGES]
- 撤销同时属于撤销者的所有表权限。用户无法撤销其自身没有的权限。
支持使用可选关键字
PRIVILEGES
以符合 SQL 标准。 -
[database.]schema
- 指定架构,默认为
public
。如果 schema 是除public
以外的任何其他架构,则必须提供架构名称。例如:myschema.thisDbObject
这里有一个例外:您可以指定系统表但不指定其架构名称。
如果指定一个数据库,它必须是当前数据库。
-
TABLE table
- 指定要撤销其权限的表。
-
ON ALL TABLES IN SCHEMA schema
- 撤销对架构 schema 中所有表和视图的指定权限。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
非超级用户,为以下之一:
-
所有权
-
对象的 GRANT OPTION 权限
示例
撤销用户 Joe
对表 customer_dimension
的权限。
=> REVOKE ALL PRIVILEGES ON TABLE customer_dimension FROM Joe;
REVOKE PRIVILEGE
另请参阅
13 - REVOKE(用户定义的扩展)
语法
REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL PRIVILEGES }
ON {
UDx‑type [[database.]schema.]function‑name( [argument‑list] )[,...]
| ALL FUNCTIONS IN SCHEMA schema[,...] }
FROM grantee[,...]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
EXECUTE
- 撤销被授予者运行指定函数的能力。
ALL [PRIVILEGES]
- 撤销同时属于调用者的所有函数权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
ON UDx‑type
- 指定函数的用户定义的扩展 (UDx) 类型,其中 UDx‑type 为以下几项之一:
-
FUNCTION
-
AGGREGATE FUNCTION
-
ANALYTIC FUNCTION
-
TRANSFORM FUNCTION
-
FILTER
-
PARSER
-
SOURCE
-
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。- function‑name
- 要撤销其权限的用户定义函数的名称。
-
ON ALL FUNCTIONS IN SCHEMA schema
- 撤销对指定架构中所有函数的权限。
- argument-list
- 对所有多态函数都是必需的,是一个逗号分隔的函数实参列表,其中每个实参指定如下:
[argname] argtype
如果过程未定义实参,请提供一个空的实参列表。
- grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
特权
非超级用户,为以下之一:
-
目标函数的所有者
-
可以选择 (
WITH GRANT OPTION
) 将这些权限扩展到其他用户的权限被授予者
示例
撤销用户 Bob
对函数 myzeroifnull
的 EXECUTE
权限:
=> REVOKE EXECUTE ON FUNCTION myzeroifnull (x INT) FROM Bob;
撤销用户 Doug
对函数 Pagerank
的所有权限:
=> REVOKE ALL ON TRANSFORM FUNCTION Pagerank (t float) FROM Doug;
撤销用户 Bob 对 zero-schema
架构中所有函数的 EXECUTE
权限:
=> REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA zero-schema FROM Bob;
撤销用户 Bob 对 tokenize
函数的 EXECUTE
权限:
=> REVOKE EXECUTE ON TRANSFORM FUNCTION tokenize(VARCHAR) FROM Bob;
撤销用户 Alice 对 ExampleSource()
源的所有权限:
=> REVOKE ALL ON SOURCE ExampleSource() FROM Alice;
另请参阅
14 - REVOKE(视图)
语法
REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] }
ON [[database.]schema.]view[,...]
FROM grantee[,...]
[ CASCADE ]
参数
-
GRANT OPTION FOR
撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。
-
privilege
- 以下几项之一:
-
SELECT:查询指定视图。
-
ALTER:使用 修改视图的 DDL
ALTER VIEW
-
DROP:使用
DROP VIEW
删除此视图。
-
ALL PRIVILEGES
- 撤销与同时属于撤销者的视图相关的所有权限。用户无法撤销其自身没有的权限。
可选关键字
PRIVILEGES
符合 SQL 标准。 -
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。-
视图
- 要撤销其权限的视图。
-
grantee
指定其权限被撤销的用户,可以为以下用户之一:
CASCADE
I
如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则CASCADE
会指定搜索这些用户并同时撤销他们的权限。
示例
撤销用户 Joe
对视图 test_view
的 SELECT 权限。
=> REVOKE SELECT ON test_view FROM Joe;
REVOKE PRIVILEGE