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

返回本页常规视图.

REVOKE 语句

REVOKE 语句用于撤销用户角色对数据库对象的权限。

1 - REVOKE(身份验证)

撤销用户角色对身份验证方法的权限。

语法

REVOKE AUTHENTICATION auth‑method‑name FROM grantee[,...]

参数

auth‑method‑name
目标身份验证方法的名称。
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 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 Fred 在当前数据库中创建架构的权限:

=> REVOKE CREATE ON DATABASE DEFAULT FROM Fred;

撤销用户 Fred 在当前数据库中创建临时表的权限:

=> REVOKE TEMP ON DATABASE DEFAULT FROM Fred;

另请参阅

3 - REVOKE(密钥)

撤销用户或角色对加密密钥的权限。

要授予密钥权限,请参阅 GRANT(密钥)

语法

REVOKE [ GRANT OPTION FOR ] { privilege[,...] | ALL [ PRIVILEGES ] } ON KEY
    key_name[,...]
    FROM user[,...]

参数

GRANT OPTION FOR

撤销指定权限的授予选项。被授予者的当前权限不受影响。如果省略此子句,Vertica 将同时撤销授予选项和当前权限。

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
目标密钥
用户

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

特权

非超级用户:

  • 所有者

  • 权限被授予者可以选择 (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 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 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 会指定搜索这些用户并同时撤销他们的权限。

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

示例

此示例将撤销用户 Bobtokenize 过程的执行权限。

=> 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 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 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 将数据加载到表中。

  • UPDATE:更新表行。

  • DELETE:删除表行。

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

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

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

  • DROP:删除表和视图。

ALL [PRIVILEGES]
撤销 USAGE AND CREATE 权限。用户无法撤销其自身没有的权限。

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

[database.]schema
要撤销其权限的架构。如果指定一个数据库,它必须是当前数据库。
grantee

指定其权限被撤销的用户,可以为以下用户之一:

CASCADE

I如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则 CASCADE 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 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
以下权限之一:
ALL [PRIVILEGES]
撤销同时属于撤销者的所有序列权限。用户无法撤销其自身没有的权限。

支持使用可选关键字 PRIVILEGES 以符合 SQL 标准。

[database.]schema

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

SEQUENCE sequence
指定要撤销权限的序列。
ALL SEQUENCES IN SCHEMA schema
撤销对架构 schema 中所有序列的指定权限。
grantee

指定其权限被撤销的用户,可以为以下用户之一:

CASCADE

I如果目标被授予者具有将指定权限扩展到其他用户的授予选项,则 CASCADE 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 Joe 对序列 my_seq 的权限。

=> REVOKE ALL PRIVILEGES ON SEQUENCE my_seq FROM Joe;
REVOKE PRIVILEGE

另请参阅

11 - REVOKE(存储位置)

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

语法

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(存储位置)

另请参阅

授予和撤销权限

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 会指定搜索这些用户并同时撤销他们的权限。

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

示例

撤销用户 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 对函数 myzeroifnullEXECUTE 权限:

=> 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

另请参阅