

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# 使用須知
<a name="r_REVOKE-usage-notes"></a>

若要撤銷物件的權限，您必須符合下列條件之一：
+ 身為物件擁有者。
+ 身為超級使用者。
+ 具有該物件和權限的授予權限。

  例如，以下命令可讓使用者 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 角色在 AWS Glue Data Catalog 已啟用 Lake Formation 的 中也有 `ALL` 許可，則不會撤銷該`ALL`許可。只有 `SELECT` 許可會遭撤銷。您可以在 Lake Formation 控制台中檢視 Lake Formation 許可。

## 撤銷 ASSUMEROL 許可的使用須知
<a name="r_REVOKE-usage-notes-assumerole"></a>

下列是在 Amazon Redshift 中撤銷 ASSUMEROLE 權限的使用須知。

只有資料庫超級使用者才能撤銷使用者和群組的 ASSUMEROLE 權限。超級使用者始終保有 ASSUMEROLE 權限。

若要啟用使用者和群組的 ASSUMEROLE 權限，超級使用者要在叢集上執行一次下列陳述式。對使用者和群組授予 ASSUMEROLE 權限之前，超級使用者必須在叢集上執行一次下列陳述式。

```
revoke assumerole on all from public for all;
```

## 撤銷機器學習許可的使用須知
<a name="r_REVOKE-usage-notes-create-model"></a>

您無法直接授予或撤銷與 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'
);
```