使用说明
要撤消对象的权限,您必须满足下列条件之一:
-
是对象所有者。
-
是超级用户。
-
拥有该对象和权限的授予权限。
例如,以下命令使用户 HR 能够对 employees 表执行 SELECT 命令并对其他用户授予和撤销相同的权限。
grant select on table employees to HR with grant option;
HR 无法撤销 SELECT 之外的任何操作的权限或 employees 表之外的任何其他表的权限。
超级用户可以访问所有对象,不管设置对象权限的 GRANT 和 REVOKE 命令如何。
PUBLIC 表示一个始终包含所有用户的组。默认情况下,PUBLIC 的所有成员都对 PUBLIC schema 具有 CREATE 和 USAGE 权限。要限制任何用户对 PUBLIC schema 的权限,您必须首先从 PUBLIC 撤销对 PUBLIC schema 的所有权限,然后向特定用户或组授予权限。以下示例控制 PUBLIC schema 中的表创建权限。
revoke create on schema public from public;
要从 Lake Formation 表撤销权限,与表的外部架构关联的 IAM 角色必须有权撤销对外部表的权限。以下示例创建具有关联 IAM 角色 myGrantor
的外部架构。IAM 角色 myGrantor
有权撤销其他角色的权限。REVOKE 命令使用与外部架构关联的 IAM 角色 myGrantor
的权限来撤销对 IAM 角色 myGrantee
的权限。
create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
revoke select on external table mySchema.mytable from iam_role 'arn:aws:iam::123456789012:role/myGrantee';
注意
如果 IAM 角色在为 Lake Formation 启用的 AWS Glue Data Catalog 中也有 ALL
权限,则不会撤销 ALL
权限。只撤销 SELECT
权限。您可以在 Lake Formation 控制台中查看 Lake Formation 权限。
有关撤销 ASSUMEROLE 权限的使用说明
以下使用说明适用于在 Amazon Redshift 中撤销 ASSUMEROLE 权限。
只有数据库超级用户才可以撤消用户和组的 ASSUMEROLE 权限。超级用户始终会保留 ASSUMEROLE 权限。
要为用户和组启用 ASSUMEROLE 的使用权限,超级用户要在集群上运行一次以下语句。要为用户和组启用 ASSUMEROLE 的使用权限,超级用户要在集群上将以下语句运行一次。
revoke assumerole on all from public for all;
有关撤销机器学习权限的使用说明
您不能直接授予或撤销与机器学习函数相关的权限。机器学习函数属于机器学习模型,其权限通过模型来控制。相反,您可以撤销与机器学习模型相关的权限。以下示例演示如何从与模型 customer_churn
关联的所有用户撤销运行权限。
REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;
您还可以撤销某个用户对机器学习模型 customer_churn
的所有权限。
REVOKE ALL on MODEL customer_churn FROM ml_user;
如果架构中有机器学习函数,则授予或撤销与机器学习函数相关的 EXECUTE
权限将失败,即使该机器学习函数已通过 GRANT EXECUTE ON MODEL
获得 EXECUTE
权限。我们建议在使用 CREATE MODEL
命令时,通过单独的架构将机器学习函数单独保存在单独架构本身中。以下示例演示了如何执行此操作。
CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' );