使用須知 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用須知

若要撤銷物件的權限,您必須符合下列條件之一:

  • 身為物件擁有者。

  • 身為超級使用者。

  • 具有該物件和權限的授予權限。

    例如,下列命令可讓使用者 HR 在員工資料表上執行SELECT命令,並為其他使用者授予和撤銷相同的權限。

    grant select on table employees to HR with grant option;

    HR 無法撤銷除 以外的任何操作,SELECT或員工以外任何其他資料表上的權限。

超級使用者可以存取所有物件,無論設定物件權限的 GRANT和 REVOKE命令為何。

PUBLIC 代表一律包含所有使用者的群組。根據預設, 的所有成員在結構描述上PUBLIC都有 PUBLIC CREATE和 USAGE權限。若要限制任何使用者對PUBLIC結構描述的許可,您必須先撤銷PUBLIC結構描述PUBLIC上的 所有許可,然後將許可授予特定使用者或群組。下列範例控制PUBLIC結構描述中的資料表建立權限。

revoke create on schema public from public;

若要從 Lake Formation 資料表撤銷權限,與資料表外部結構描述相關聯的IAM角色必須具有撤銷外部資料表權限的許可。下列範例會建立具有關聯IAM角色 的外部結構描述myGrantor。IAM 角色myGrantor具有撤銷他人許可的許可。REVOKE 命令會使用與外部結構描述myGrantor相關聯的IAM角色許可,來撤銷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;

撤銷機器學習許可的使用須知

您無法直接授予或撤銷與 ML 函數相關的許可。ML 函數屬於 ML 模型,而且許可是透過模型控制的。相反地,您可以撤銷 ML 模型相關的許可。下列範例會示範如何從與模型 customer_churn 相關聯的所有使用者中撤銷執行許可。

REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;

您也可以從 ML 模型 customer_churn 的使用者中撤銷所有許可。

REVOKE ALL on MODEL customer_churn FROM ml_user;

如果結構描述中有 ML 函數,則授予或撤銷 ML 函數相關的 EXECUTE 許可將會失敗,即使該 ML 函數已經具有透過 GRANT EXECUTE ON MODEL 取得的 EXECUTE 許可也是一樣。我們建議您在使用 CREATE MODEL 命令時,使用個別的結構描述,將 ML 函數本身保留在不同的結構描述中。下列範例示範如何執行此動作。

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' );