

 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/)。

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

# Amazon Redshift 中取用者對現有資料共用的動作
<a name="writes-consumer-existing"></a>

您可以使用 Amazon Redshift 來管理現有的資料共用，以控制對 Amazon Redshift 叢集中資料的存取。下列各節提供逐步指引，說明如何以取用者管理員身分在 Amazon Redshift 環境中管理資料共用。

**Topics**
+ [在 Amazon Redshift 中管理資料共用的許可](writes-managing-permissions.md)
+ [從 Amazon Redshift 中不同 AWS 帳戶 的資料取用者移除資料共用的關聯](writes-disassociating-datashare.md)
+ [從 Amazon Redshift AWS 帳戶 中的不同 拒絕資料共用](writes-declining-datashare.md)

# 在 Amazon Redshift 中管理資料共用的許可
<a name="writes-managing-permissions"></a>

身為生產者管理員，您可以保留您所共用資料集的控制權。您可以將新物件新增至資料共用，或從資料共用中移除物件。您也可以授予或撤銷取用者叢集、 AWS 帳戶或 AWS 區域的整個資料共用存取權。當許可被撤銷時，取用者叢集會立即失去共用物件的存取權，並無法在 SVV\$1DATASHARES 的 INBOUND 資料共用清單中看到共用物件。

下列範例會建立資料共用 `salesshare`、新增結構描述 `public`，並將資料表 `public.tickit_sales_redshift` 新增至 `salesshare`。另外還會將 `salesshare` 的使用許可授予指定的命名空間。

```
CREATE DATASHARE salesshare;
            
ALTER DATASHARE salesshare ADD SCHEMA public;

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; 

GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

對於 CREATE DATASHARE，超級使用者和資料庫擁有者可以建立資料庫。如需詳細資訊，請參閱[CREATE DATASHARE](r_CREATE_DATASHARE.md)。對於 ALTER DATASHARE，在要新增或移除的資料共用物件上有所需許可的資料共用擁有者可以修改資料共用。如需相關資訊，請參閱[ALTER DATASHARE](r_ALTER_DATASHARE.md)。

身為生產者管理員，當您捨棄資料共用時，資料共用不會再列在取用者叢集上。使用者叢集上從捨棄的資料共用中建立的資料庫和結構描述參考會繼續存在，但其中沒有任何物件。取用者管理員必須手動刪除這些資料庫。

在取用者方面，取用者管理員可以透過從資料共用建立資料庫來決定哪些使用者和角色應該可以存取共用資料。根據您在建立資料庫時所選擇的選項，您可以按照下列方式控制對資料庫的存取。如需從資料共用建立資料庫的詳細資訊，請參閱 [CREATE DATABASE](r_CREATE_DATABASE.md)。

如需設定資料共用和從取用者讀取資料的詳細資訊，請參閱[共用 AWS 帳戶中資料的讀取存取權](https://docs.aws.amazon.com/redshift/latest/dg/within-account.html)。

**建立沒有 WITH PERMISSIONS 子句的資料庫**  
管理員可以在資料庫或結構描述層級上控制存取權。若要在結構描述層級上控制存取權，管理員必須從在資料共用中建立的 Amazon Redshift 資料庫建立外部結構描述。

下列範例會授予在資料庫層級和結構描述層級上存取共用資料表的許可。

```
GRANT USAGE ON DATABASE sales_db TO Bob;

CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE sales_db SCHEMA 'public';

GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
```

若要進一步限制存取權，您可以在共用物件頂端建立檢視，僅公開必要的資料。然後，您可以使用這些視觀表將存取權提供給使用者和角色。

對使用者授予資料庫或結構描述的存取權之後，使用者就可以存取該資料庫或結構描述中的所有共用物件。

**使用 WITH PERMISSIONS 子句建立資料庫**  
授予資料庫或結構描述的使用權之後，系統管理員可以使用與本機資料庫或結構描述相同的權限授予程序，進一步控制存取權。如果沒有個別物件權限，使用者就無法存取資料附屬資料庫或結構描述中的任何物件，即使在被授予 USAGE 權限之後也一樣。

下列範例會授予在資料庫層級上存取共用資料表的許可。

```
GRANT USAGE ON DATABASE sales_db TO Bob;
GRANT USAGE FOR SCHEMAS IN DATABASE sales_db TO Bob;
GRANT SELECT ON sales_db.public.tickit_sales_redshift TO Bob;
```

授予資料庫或結構描述的存取權之後，使用者仍然需要獲得資料庫或結構描述中任何您要讓他們存取之物件的相關權限。

## 使用 WITH PERMISSIONS 進行精細共用
<a name="share-datashare-writes"></a>

您可以使用 WITH PERMISSIONS 進行精細共用，讓叢集或 Serverless 工作群組查詢資料共用。此程序假設資料共用源自您帳戶中的其他叢集或 Amazon Redshift Serverless 命名空間，或者來自另一個帳戶，且已與您正在使用的命名空間相關聯。

1. 取用者資料庫管理員可以從資料共用建立資料庫。

   ```
   CREATE DATABASE my_ds_db [WITH PERMISSIONS] FROM DATASHARE my_datashare OF NAMESPACE 'abc123def';
   ```

   如果您使用 WITH PERMISSIONS 建立資料庫，則可以對不同的使用者和角色授予資料共用物件的精細許可。如果沒有這個功能，所有被授予資料共用資料庫 USAGE 權限的使用者和角色，都會被授予資料共用資料庫內所有物件的所有權限。

1. 以下說明如何將權限授予 Redshift 資料庫使用者或角色。您必須連線到本機資料庫，才能執行這些陳述式。如果您在執行授予陳述式之前，在資料共用資料庫上執行 USE 命令，則無法執行這些陳述式。

   ```
   GRANT USAGE ON DATABASE my_ds_db TO ROLE data_eng;
   GRANT CREATE, USAGE ON SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng;
   GRANT ALL ON ALL TABLES IN SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng;
    
   GRANT USAGE ON DATABASE my_ds_db TO bi_user;
   GRANT USAGE ON SCHEMA my_ds_db.my_shared_schema TO bi_user;
   GRANT SELECT ON my_ds_db.my_shared_schema.table1 TO bi_user;
   ```

# 從 Amazon Redshift 中不同 AWS 帳戶 的資料取用者移除資料共用的關聯
<a name="writes-disassociating-datashare"></a>

您可以使用 Amazon Redshift 從其他 AWS 帳戶共用的資料共用移除關聯。資料共用是可共用的資料庫物件，其中封裝了來自一或多個 Redshift 資料庫的資料。下列各節示範在 Redshift 環境內取消資料共用關聯的程序。

------
#### [ Console ]

身為取用者管理員，您可以在主控台上從資料取用者移除資料共用的關聯。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 在導覽功能表中，選擇**資料共用**。資料共用清單頁面會隨即出現。

1. 選擇**來自其他帳戶**。

1. 在**來自其他帳戶的資料共用**區段中，選擇要從資料取用者中移除關聯的資料共用。

1. 在**資料取用者**段落中，選擇一或多個要從中移除關聯的資料取用者。然後選擇**移除關聯**。

1. 當移除關聯頁面出現時，請選擇**移除關聯**。

移除關聯之後，資料取用者將失去對資料共用的存取權。您可以隨時變更資料取用者關聯。

------
#### [ SQL ]

**注意**  
在生產者管理員授予共用資料庫物件的特定動作之後，執行本節所述步驟，如果資料共用正在與其他帳戶共用，則生產者安全管理員會授予存取權。

取用者安全管理員可以使用下列命令取消資料共用的關聯：

```
disassociate-data-share-consumer
--data-share-arn <value>
```

如需有關命令的詳細資訊，請參閱 [disassociate-data-share-consumer](https://docs.aws.amazon.com/cli/latest/reference/redshift/disassociate-data-share-consumer.html)。

------

# 從 Amazon Redshift AWS 帳戶 中的不同 拒絕資料共用
<a name="writes-declining-datashare"></a>

使用 Amazon Redshift，您可以拒絕其他 AWS 帳戶共用的資料共用，實現跨組織邊界的無縫且安全的資料共用。資料共用是可共用的資料庫物件，其中封裝了來自一或多個 Amazon Redshift 資料庫的資料。

身為取用者管理員，您可以拒絕任何狀態為可用或作用中的資料共用。拒絕資料共用後，取用者叢集使用者將失去資料共用的存取權。如果您呼叫 `DescribeDataSharesForConsumer` API 作業，Amazon Redshift 不會傳回已拒絕的資料共用。如果生產者管理員執行 `DescribeDataSharesForProducer` API 操作，則會看到資料共用遭拒。一旦資料共用遭到拒絕，生產者管理員可以再次將資料共用授權給取用者叢集，取用者管理員可以選擇將其 AWS 帳戶與資料共用建立關聯或拒絕。

如果 AWS 您的帳戶與資料共用有關聯，且與 Lake Formation 管理的資料共用有待定關聯，則拒絕 Lake Formation 管理的資料共用關聯也會拒絕原始資料共用。若要拒絕特定關聯，生產者管理員可以從指定的資料共用中移除授權。此動作不會影響其他資料共用。

若要拒絕資料共用，請使用 AWS 主控台、 API 操作 `RejectDataShare`或 `reject-datashare` 中的 AWS CLI。

------
#### [ Console ]

若要使用 AWS 主控台拒絕資料共用，請執行下列步驟。

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 在導覽功能表中，選擇**資料共用**。

1. 選擇**來自其他帳戶**。

1. 在**來自其他帳戶的資料共用**區段中，選擇您要拒絕的資料共用。出現**拒絕資料共用**頁面時，選擇**拒絕**。

拒絕資料共用之後，您就無法還原變更。Amazon Redshift 會從清單中移除資料共用。若要再次查看資料共用，生產者管理員必須再次對其授權。

------
#### [ CLI ]

管理員可使用下列命令拒絕資料共用：

```
reject-data-share
--data-share-arn <value>
```

如需有關命令的詳細資訊，請參閱 [reject-data-share](https://docs.aws.amazon.com/cli/latest/reference/redshift/reject-data-share.html)。

------