REVOKE
从用户或用户组删除访问权限,例如,用于创建、删除或更新表的权限。
您只能使用 ON SCHEMA 语法将针对外部架构的 GRANT 或 REVOKE USAGE 权限授予数据库用户和用户组。将 ON EXTERNAL SCHEMA 与 Amazon Lake Formation 搭配使用时,您只能向 Amazon Identity and Access Management (IAM) 角色授予 GRANT 和 REVOKE 权限。有关权限的列表,请参阅语法。
对于存储过程,默认情况下,向 PUBLIC 授予 USAGE ON LANGUAGE plpgsql 权限。EXECUTE ON PROCEDURE 权限默认情况下只授予拥有者和超级用户。
在 REVOKE 语句中指定要删除的权限。要授予权限,请使用 GRANT 命令。
语法
REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | DROP | REFERENCES } [,...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] } ON DATABASE db_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] EXECUTE ON FUNCTION function_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { { EXECUTE } [,...] | ALL [ PRIVILEGES ] } ON PROCEDURE procedure_name ( [ [ argname ] argtype [, ...] ] ) [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] USAGE ON LANGUAGE language_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
以下是 Amazon Redshift 表和视图上的列级权限的语法。
REVOKE { { SELECT | UPDATE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { [ TABLE ] table_name [, ...] } FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
以下是撤消具有指定角色的用户和组的 ASSUMEROLE 权限的语法。
REVOKE ASSUMEROLE ON { 'iam_role' [, ...] | default | ALL } FROM { user_name | ROLE role_name | GROUP group_name | PUBLIC } [, ...] FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL }
以下是 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 } [, ...]
以下是使用 REVOKE 获取 Amazon Redshift 的数据共享权限的语法。
REVOKE { ALTER | SHARE } ON DATASHARE datashare_name FROM { username [ WITH GRANT OPTION ] | ROLE role_name | GROUPgroup_name| PUBLIC } [, ...]
以下是使用 REVOKE 获取 Amazon Redshift 的数据共享使用权限的语法。
REVOKE USAGE ON DATASHARE datashare_name FROM NAMESPACE 'namespaceGUID' [, ...] | ACCOUNT 'accountnumber' [ VIA DATA CATALOG ] [, ...]
以下是如何从 Lake Formation 账户中撤销数据共享使用权的示例。
REVOKE USAGE ON salesshare FROM ACCOUNT '123456789012' VIA DATA CATALOG;
以下是根据数据共享创建的特定数据库或 schema 的 REVOKE 数据共享使用权限的语法。此 USAGE 权限不会撤销非从指定数据共享创建的数据库的使用权限。您只能将针对数据共享的权限 REVOKE、ALTER 或 SHARE 给用户和用户组。
REVOKE USAGE ON { DATABASE shared_database_name [, ...] | SCHEMA shared_schema} FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...]
以下是 Amazon Redshift 上的机器学习模型权限的语法。
REVOKE [ GRANT OPTION FOR ] CREATE MODEL FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ] REVOKE [ GRANT OPTION FOR ] { EXECUTE | ALL [ PRIVILEGES ] } ON MODEL model_name [, ...] FROM { username | ROLE role_name | GROUP group_name | PUBLIC } [, ...] [ RESTRICT ]
以下是将撤销 Amazon Redshift 上的角色权限的语法。
REVOKE [ ADMIN OPTION FOR ] { ROLE role_name } [, ...] FROM { user_name } [, ...]
REVOKE { ROLE role_name } [, ...] FROM { ROLE role_name } [, ...]
以下是将向 Amazon Redshift 上的角色撤销系统权限的语法。
REVOKE { { CREATE USER | DROP USER | ALTER USER | CREATE SCHEMA | DROP SCHEMA | ALTER DEFAULT PRIVILEGES | CREATE TABLE | DROP TABLE | ALTER TABLE | CREATE OR REPLACE FUNCTION | CREATE OR REPLACE EXTERNAL FUNCTION | DROP FUNCTION | CREATE OR REPLACE PROCEDURE | DROP PROCEDURE | CREATE OR REPLACE VIEW | DROP VIEW | CREATE MODEL | DROP MODEL | CREATE DATASHARE | ALTER DATASHARE | DROP DATASHARE | CREATE LIBRARY | DROP LIBRARY | CREATE ROLE | DROP ROLE TRUNCATE TABLE VACUUM | ANALYZE | CANCEL }[, ...] } | { ALL [ PRIVILEGES ] } FROM { ROLE role_name } [, ...]
以下语法用于撤消解释 EXPLAIN 计划中查询的行级别安全性策略筛选器的权限。您可以使用 REVOKE 语句撤消该权限。
REVOKE EXPLAIN RLS FROM ROLE rolename
以下语法用于授予为查询绕开行级别安全性策略的权限。
REVOKE IGNORE RLS FROM ROLE rolename
以下语法用于从指定的行级别安全性策略撤销权限。
REVOKE SELECT ON [ TABLE ] table_name [, ...] FROM RLS POLICY policy_name [, ...]
参数
- GRANT OPTION FOR
-
仅撤消将指定权限授予其他用户的选项,而不撤消权限本身。您无法从组或 PUBLIC 撤消 GRANT OPTION。
- SELECT
-
撤消用于通过 SELECT 语句从表或视图中选择数据的权限。
- INSERT
-
撤消用于通过 INSERT 语句或 COPY 语句将数据加载到表中的权限。
- 更新
-
撤消用于通过 UPDATE 语句更新表列的权限。
- 删除
-
撤消用于从表中删除数据行的权限。
- REFERENCES
-
撤消用于创建外键约束的权限。您应该在被引用表和引用表上撤消此权限。
- ALL [ PRIVILEGES ]
-
一次性从指定的用户或组撤消所有可用权限。PRIVILEGES 关键字是可选的。
- ALTER
-
撤消对为 Lake Formation 启用的 Amazon Glue Data Catalog 中的表的更改权限。此权限仅在使用 Lake Formation 时适用。
- DROP
-
撤消对表的删除权限。此权限仅在 Amazon Redshift 以及为 Lake Formation 启用的 Amazon Glue Data Catalog 中适用。
- ASSUMEROLE
-
从具有指定角色的用户、角色或组撤消运行 COPY、UNLOAD、EXTERNAL FUNCTION 或 CREATE MODEL 命令的权限。
- 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 角色撤消对于引用的 Schema 中 Lake Formation 表的指定列的指定权限。
- ON EXTERNAL TABLE schema_name.table_name
-
从 IAM 角色撤消对于引用的 Schema 中的指定 Lake Formation 表的指定权限。
- ON EXTERNAL SCHEMA schema_name
-
从 IAM 角色撤消对于引用的 Schema 的指定权限。
- FROM IAM_ROLE iam_role
-
表示丢失权限的 IAM 角色。
- ROLE role_name
-
撤销指定角色的权限。
- 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 的创建。
- RESTRICT
-
仅撤消用户直接授予的那些权限。此行为是默认行为。
- EXECUTE ON PROCEDURE procedure_name
-
撤销对特定存储过程的 EXECUTE 权限。由于存储过程名称可重载,因此您必须包含过程的参数列表。有关更多信息,请参阅命名存储过程。
- EXECUTE ON ALL PROCEDURES IN SCHEMA procedure_name
-
撤销对被引用 schema 中的所有过程的指定权限。
- USAGE ON LANGUAGE language_name
-
撤消语言的 USAGE 权限。对于 Python 用户定义的函数 (UDF),请使用
plpythonu。对于 SQL UDF,使用sql。对于存储过程,请使用plpgsql。要创建 UDF,您必须具有使用 SQL 或
plpythonu(Python) 语言的权限。默认情况下,向 PUBLIC 授予 USAGE ON LANGUAGE SQL。但是,您必须明确授予 USAGE ON LANGUAGE PLPYTHONU 权限才能指定用户或组。要撤销 SQL 的使用权限,请先从 PUBLIC 撤销使用权限。然后,仅向允许创建 SQL UDF 的特定用户或组授予 SQL 使用权限。以下示例将从 PUBLIC 撤销对 SQL 的使用权限,然后向用户组
udf_devs授予使用权限。revoke usage on language sql from PUBLIC; grant usage on language sql to group udf_devs;有关更多信息,请参阅UDF 安全性和权限。
要撤销存储过程的使用权限,请先从 PUBLIC 撤销使用权限。然后,仅向允许创建存储过程的特定用户或组授予
plpgsql使用权限。有关更多信息,请参阅存储过程的安全性和权限 。 - FOR { ALL | COPY | UNLOAD | EXTERNAL FUNCTION | CREATE MODEL } [, ...]
-
指定撤消其权限的 SQL 命令。您可以指定 ALL 以撤销对 COPY、UNLOAD、EXTERNAL FUNCTION 和 CREATE MODEL 语句的权限。此子句仅适用于撤销 ASSUMEROLE 权限。
- ALTER
撤消用户或用户组的 ALTER 权限,允许那些不拥有数据共享的用户或用户组更改数据共享。将对象添加到数据共享中或从中删除,或设置属性 PUBLICACCESSIBLE 时需要此权限。有关更多信息,请参阅ALTER DATASHARE。
- SHARE
撤销用户和用户组将使用者添加到数据共享的权限。需要撤销此权限才能阻止特定使用者从其集群访问数据共享。
- ON DATASHARE datashare_name
授予对被引用数据共享的指定权限。
- FROM 用户名
指示丢失权限的用户。
- FROM GROUP group_name
指示丢失权限的用户组。
- WITH GRANT OPTION
指示丢弃权限的用户反过来可以撤销其他人的相同权限。您无法为组或 PUBLIC 撤消 WITH GRANT OPTION。
- USAGE
撤销同一账户中的使用者账户或命名空间的 USAGE 时,该账户中的特定使用者账户或命名空间不能以只读方式访问数据共享和数据共享的对象。
撤消 USAGE 权限将撤消使用者对数据共享的访问权限。
- FROM NAMESPACE 'clusternamespace GUID'
指示同一账户中使用者丢失对数据共享的权限的命名空间。命名空间使用 128 位字母数字全局唯一标识符 (GUID)。
- FROM ACCOUNT 'accountnumber' [ VIA DATA CATALOG ]
指示另一个账户中使用者丢失对数据共享的权限的账户编号。指定‘VIA DATA CATALOG’表示您要从 Lake Formation 账户撤销使用数据共享的权限。省略账号意味着您要撤销拥有集群的账户的权限。
- ON DATABASE shared_database_name> [, ...]
-
撤销对在指定数据共享中创建的指定数据库的指定使用权限。
- ON SCHEMA shared_schema
-
撤销对在指定数据共享中创建的指定 schema 的指定权限。
- CREATE MODEL
撤消 CREATE MODEL 在指定数据库中创建机器学习模型的权限。
- ON MODEL model_name
撤销特定模型的 EXECUTE 权限。
- [ ADMIN OPTION FOR ] { role } [, ...]
您从具有 WITH ADMIN OPTION 的指定用户撤销的角色。
- FROM { role } [, ...]
从其撤消了指定角色的角色。