使用須知 - Amazon Redshift

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

使用須知

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

  • 身為物件擁有者。

  • 身為超級使用者。

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

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

    grant select on table employees to HR with grant option;

    HR 無法撤銷 SELECT 以外任何操作的權限,也無法撤銷 employees 資料表以外任何資料表的權限。

無論是使用 GRANT 或 REVOKE 命令設定物件權限,超級使用者都能存取所有物件。

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

revoke create on schema public from public;

若要撤銷 Lake Formation 資料表的權限,則與該資料表外部結構描述相關聯的 IAM 角色就需具備撤銷外部資料表權限的許可。下列範例所建立的外部結構描述內含相關聯的 myGrantor IAM 角色。該 myGrantor IAM 角色具備撤銷他人許可的許可。REVOKE 命令會使用與外部結構描述相關聯的 myGrantor IAM 角色許可,撤銷 myGrantee IAM 角色的許可。

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 許可。

撤銷 ASSUMEROL 許可的使用須知

下列是在 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 'your-s3-bucket' );