REVOKE - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

REVOKE

从用户或用户组删除访问权限,例如,用于创建或更新表的权限。

您只能使用 ON SCHEMA 语法将针对外部架构的 GRANT 或 REVOKE USAGE 权限授予数据库用户和用户组。将 ON EXTERNAL SCHEMA 与 AWS Lake Formation 搭配使用时,您只能向 AWS Identity and Access Management (IAM) 角色授予 GRANT 和 REVOKE 权限。有关权限的列表,请参阅语法。

对于存储过程,默认情况下,向 PUBLIC 授予 USAGE ON LANGUAGE plpgsql 权限。EXECUTE ON PROCEDURE 权限默认情况下只授予拥有者和超级用户。

在 REVOKE 语句中指定要删除的权限。要授予权限,请使用 GRANT 命令。

Syntax

REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

以下是 Amazon Redshift 表和视图上列级权限的语法。

REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

以下是从具有指定角色的用户和组撤消 ASUMEROLE 权限的语法。

REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | ALL } FROM { user_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD }

以下是 Redshift Spectrum 与 Lake Formation 集成的语法。

REVOKE [ GRANT OPTION FOR ] { SELECT | ALL [ PRIVILEGES ] } ( column_list ) ON EXTERNAL TABLE schema_name.table_name FROM { IAM_ROLE iam_role } [, ...] REVOKE [ GRANT OPTION FOR ] { { SELECT | ALTER | DROP | DELETE | INSERT } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL TABLE schema_name.table_name [, ...] FROM { { IAM_ROLE iam_role } [, ...] | PUBLIC } REVOKE [ GRANT OPTION FOR ] { { CREATE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON EXTERNAL SCHEMA schema_name [, ...] FROM { IAM_ROLE iam_role } [, ...]

Parameters

GRANT OPTION FOR

仅撤消将指定权限授予其他用户的选项,而不撤消权限本身。您无法从组或 PUBLIC 撤消 GRANT OPTION。

SELECT

撤消用于通过 SELECT 语句从表或视图中选择数据的权限。

INSERT

撤消用于通过 INSERT 语句或 COPY 语句将数据加载到表中的权限。

UPDATE

撤消用于通过 UPDATE 语句更新表列的权限。

DELETE

撤消用于从表中删除数据行的权限。

REFERENCES

撤消用于创建外键约束的权限。您应该在被引用表和引用表上撤消此权限。

ALL [ PRIVILEGES ]

一次性从指定的用户或组撤消所有可用权限。PRIVILEGES 关键字是可选的。

ALTER

撤销更改为 Lake Formation 启用的 AWS Glue 数据目录 中的表的权限。此权限仅在使用 Lake Formation 时适用。

DROP

撤销删除为 Lake Formation 启用的 AWS Glue 数据目录 中的表的权限。此权限仅在使用 Lake Formation 时适用。

ASSUMEROLE

撤消用于从具有指定角色的用户和组运行 COPY 和 UNLOAD 命令的权限。

ON [ TABLE ] table_name

撤消对表或视图的指定权限。TABLE 关键字是可选的。

ON ALL TABLES IN SCHEMA schema_name

撤消对被引用 schema 中的所有表的指定权限。

( column_name [,...] ) ON TABLE table_name

撤消用户、组或 PUBLIC 对 Amazon Redshift 表或视图的指定列的指定权限。

( column_list ) ON EXTERNAL TABLE schema_name.table_name

从 IAM 角色撤销对于引用架构中 Lake Formation 表的指定列的指定权限。

ON EXTERNAL TABLE schema_name.table_name

从 IAM 角色撤销对于引用架构中的指定 Lake Formation 表的指定权限。

ON EXTERNAL SCHEMA schema_name

从 IAM 角色撤消对于引用架构的指定权限。

FROM IAM_ROLE iam_role

指示丢失权限的 IAM 角色。

GROUP group_name

从指定的用户组撤消权限。

PUBLIC

从所有用户撤消指定的权限。PUBLIC 表示一个始终包含所有用户的组。单个用户的权限包含向 PUBLIC 授予的权限、向用户所属的所有组授予的权限以及向用户单独授予的任何权限。

从 Lake Formation 外部表中撤销 PUBLIC 会将该权限从 Lake Formation 所有人组撤销。

CREATE

根据数据库对象,从用户或组撤消以下权限:

  • 对于数据库,对 REVOKE 使用 CREATE 子句将阻止用户在数据库中创建 schema。

  • 对于 schemas,对 REVOKE 使用 CREATE 子句将阻止用户在 schema 中创建对象。要重命名对象,用户必须具有 CREATE 权限并拥有要重命名的对象。

注意

默认情况下,所有用户都对 PUBLIC schema 具有 CREATE 和 USAGE 权限。

TEMPORARY | TEMP

撤消用于在指定的数据库中创建临时表的权限。

注意

默认情况下,向用户授予权限以通过其在 PUBLIC 组中自动获得的成员资格来创建临时表。要为任何用户删除用于创建临时表的权限,请撤消 PUBLIC 组的 TEMP 权限,然后明确向特定用户或用户组授予用于创建临时表的权限。

ON DATABASE db_name

撤消对指定数据库的权限。

USAGE

撤消对特定 schema 中的对象的 USAGE 权限,这将使用户无法访问这些对象。必须单独撤消这些对象的特定操作(例如,对函数的 EXECUTE 权限)。

注意

默认情况下,所有用户都对 PUBLIC schema 具有 CREATE 和 USAGE 权限。

ON SCHEMA schema_name

撤消对指定 schema 的权限。您可以使用 schema 权限来控制表的创建;数据库的 CREATE 权限仅控制 schema 的创建。

CASCADE

如果用户拥有带授予选项的权限并且已向其他用户授予权限,则这些其他用户拥有的权限是关联权限。如果将撤消第一个用户拥有的权限或授予选项并且存在关联权限,则在指定 CASCADE 的情况下也会撤消这些关联权限;否则,撤消操作将失败。

例如,如果用户 A 已将带授予选项的权限授予用户 B,而用户 B 已将权限授予用户 C,则用户 A 可以从用户 B 撤消授予选项,并在使用 CASCADE 选项的情况下又会从用户 C 撤消权限。

RESTRICT

仅撤消用户直接授予的那些权限。此行为是默认行为。

EXECUTE ON FUNCTION function_name

撤销特定函数的 EXECUTE 权限。由于函数名可重载,因此您必须包含函数的参数列表。有关更多信息,请参阅命名 UDFs

EXECUTE ON PROCEDURE procedure_name

撤销对特定存储过程的 EXECUTE 权限。由于存储过程名称可重载,因此您必须包含过程的参数列表。有关更多信息,请参阅Naming stored procedures

EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name

撤销对被引用 schema 中的所有过程的指定权限。

USAGE ON LANGUAGE language_name

撤消语言的 USAGE 权限。对于 Python 用户定义的函数 (UDF),请使用 plpythonu。 对于 SQL UDFs,请使用 sql。 对于存储过程,请使用 plpgsql

要创建 UDF,您必须具有使用 SQL 或 plpythonu (Python) 语言的权限。默认情况下,向 PUBLIC 授予 USAGE ON LANGUAGE SQL。但是,您必须明确授予 USAGE ON LANGUAGE PLPYTHONU 权限才能指定用户或组。

要撤销 SQL 的使用权限,请先从 PUBLIC 撤销使用权限。然后,仅向允许创建 SQL UDFs 的特定用户或组授予 SQL 使用权限。 以下示例从 PUBLIC 撤销对 SQL 的使用权限,然后向用户组 udf_devs 授予使用权限。

revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;

有关更多信息,请参阅UDF 安全性和权限

要撤销存储过程的使用权限,请先从 PUBLIC 撤销使用权限。然后,仅向允许创建存储过程的特定用户或组授予 plpgsql 使用权限。有关更多信息,请参阅Security and privileges for stored procedures

FOR { ALL | COPY | UNLOAD } [, ...]

指定撤销其权限的 SQL 命令。您可以指定 ALL 以撤消 COPY 和 UNLOAD 语句的权限。此子句仅适用于撤销 ASUMEROLE 权限。

将 REVOKE 与数据共享结合使用的语法

这是 Amazon Redshift 数据共享功能的预发布文档,目前为预览版。文档和功能均可能随时更改。我们建议您只在测试集群中使用此功能,而不要在生产环境中使用。有关预览版条款和条件,请参阅 AWS 服务条款中的 Beta 服务参与。将有关此功能的反馈发送至 redshift-datasharing@amazon.com。

以下是在 Amazon Redshift 上将 REVOKE 用于数据共享权限的语法。

REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | GROUP group_name | PUBLIC } [, ...]

以下是在 Amazon Redshift 上将 REVOKE 用于数据共享使用权限的语法。

REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...]

以下是针对特定数据库或从数据共享创建的数据共享使用权限的 REVOKE 语法。此 USAGE 权限不会撤销不是从指定数据共享创建的数据库的使用权限。您只能对用户和用户组的数据共享执行 REVOKE ALTER 或 ALL 权限。

REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | GROUP group_name | PUBLIC } [, ...]

将 REVOKE 与数据共享结合使用的参数

ALTER

撤消用户或用户组的 ALTER 权限,以允许不拥有数据共享的用户通过 ALTER 实现数据共享。在数据共享中添加或删除对象或设置属性 PUBLICACCESSIBLE 需要此权限。有关更多信息,请参阅ALTER DATASHARE

SHARE

撤消用户和用户组将使用者添加到数据共享的权限。需要此权限才能停止特定使用者 以从其集群中访问数据共享。

ON DATASHARE datashare_name

授予对引用的数据共享的指定权限。

FROM 用户名

一个子句,指示用户丢失权限。

FROM GROUP group_name

一个子句,指示丢失权限的用户组。

WITH GRANT OPTION

一个子句,指示接收权限的用户又可以撤销对其他人的相同权限。您无法撤消对组或 PUBLIC 的 WITH GRANT OPTION。

PUBLIC

向所有用户(包括新用户)撤消指定的权限。PUBLIC 表示一个始终包含所有用户的组。单个用户的权限包含向 PUBLIC 授予的权限、向用户所属的所有组授予的权限以及向用户单独授予的任何权限。向 AWS Lake Formation EXTERNAL TABLE 授予 PUBLIC 权限会导致向 Lake Formation 所有人组授予权限。

USAGE

当 USAGE 被撤销到同一账户内的使用者账户或命名空间时,账户中的特定 命名空间将无法访问数据共享以及只读数据共享的对象。

USAGE 权限从使用者撤销对数据共享的访问权限。

FROM NAMESPACE“clusternamespace GUID”

一个子句,指示使用者在相同账户中的命名空间丢失数据共享权限。命名空间使用 128 位字母数字 GUID。

ON DATABASE shared_database_name> [, ...]

授予对在指定数据共享中创建的特定数据库的指定使用权限。

ON SCHEMA shared_schema

授予对在指定的数据共享中创建的特定 schema 的指定权限。

将 REVOKE 与机器学习模型结合使用的语法

这是 Amazon Redshift 的机器学习功能的预发布文档,目前为预览版。文档和功能均可能随时更改。我们建议您只在测试集群中使用此功能,而不要在生产环境中使用。有关预览版条款和条件,请参阅 AWS 服务条款中的Beta 服务参与

以下是 Amazon Redshift 上的机器学习模型权限的语法。有关特定于模型的参数的信息,请参阅撤销模型权限

REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | GROUP group_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]

撤销模型权限

使用以下特定于模型的参数。

型号

撤消 MODEL 权限以在指定的数据库中创建机器学习模型。

ON 模型 model_name

撤销对特定模型的 EXECUTE 权限。由于模型名称可以重载,因此,请确保包含模型的参数列表。

CASCADE

指定在 Amazon Redshift 删除模型时自动删除从属对象,例如视图和其他 SQL 用户定义的函数。

RESTRICT

指定在 Amazon Redshift 删除模型时不删除从属对象,例如视图和其他 SQL 用户定义的函数。此操作是默认操作。