

 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="datashare-creation"></a>

透過 Amazon Redshift，您可以使用資料共用跨 Amazon Redshift 叢集或 AWS 帳戶共用即時資料。資料共用是一種消費者生產者物件，可讓您將來自 Amazon Redshift 叢集的即時資料與其他叢集或 AWS 帳戶共用。建立資料共用可實現安全的資料共用，同時維持對存取權的控制，並確保資料處於最新狀態。下列各節提供建立資料共用和新增資料庫物件 (例如結構描述、資料表和檢視) 的詳細資訊，以安全地共用即時資料。

## 建立資料共用
<a name="create-datashare-console"></a>

資料共用是資料庫物件、權限和取用者的邏輯容器。取用者是您帳戶和其他 AWS 帳戶中的 Amazon Redshift 佈建叢集或 Amazon Redshift Serverless 命名空間。每個資料共用都與其建立的資料庫相關聯，只能新增來自該資料庫的物件。身為生產者管理員，您可以遵循下列其中一項程序，在主控台上及使用 SQL 建立資料共用。

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

在主控台上，您可以從叢集或命名空間詳細資訊頁面的**資料共用**索引標籤中建立資料共用。建立資料共用之後，您可以在取用者上以取用者管理員身分從資料共用建立資料庫。

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

1. 在導覽選單上，選擇**叢集**，然後選擇您的叢集。叢集詳細資訊頁面會隨即出現。

1. 如果您沒有資料庫連線，請在叢集或命名空間詳細資訊頁面中，從**資料共用**索引標籤的**資料共用**區段中連線至資料庫。於**在我的帳戶中建立的資料共用**區段中，選擇**建立資料共用**。隨即出現**建立資料共用**頁面。

1. 選擇**建立資料共用**。您只能從本機資料庫建立資料共用。如果您尚未連線到資料庫，則會出現**連線到資料庫**頁面。依照 [連線至資料庫](connect-database-console.md) 中的步驟連線到資料庫。如果有最近使用的連線，就會顯示**建立資料共用**頁面。

1. 在**資料共用資訊**區段中，選擇下列其中一項：
   + 選擇**資料共用**以建立資料共用，以便在不同的 Amazon Redshift 資料倉儲 （佈建叢集或無伺服器端點） 或相同 AWS 帳戶 或不同的 中共用資料以供讀取或寫入之用 AWS 帳戶。
   + 選擇**AWS Data Exchange 資料共用**以建立資料共用，以授權您的資料 AWS Data Exchange。

1. 指定**資料共用名稱**、**資料庫名稱**和**可公開存取**的值。當您變更資料庫名稱時，請建立新的資料庫連線。

1. 使用**限定範圍許可**或**直接許可**區段，將物件新增至資料共用。若要將物件新增至資料共用，請參閱 [在 Amazon Redshift 中建立資料共用](writes-creating-datashare.md)。

1. 在**資料取用**者區段中，您可以選擇發佈至 Amazon Redshift，或發佈至 AWS Glue Data Catalog，這會開始與 Lake Formation 共用資料的程序。將您的資料共用發佈至 Amazon Redshift 意味著與另一個命名空間或取用者身分的 Amazon Redshift 帳戶共用您的資料。
**注意**  
建立資料共用之後，您就無法編輯要發佈到其他選項的組態。

1. 選擇**建立資料共用**。

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

以下命令會建立資料共用。

```
CREATE DATASHARE salesshare;
```

建立資料共用時，每個資料共用都會與一個資料庫建立關聯。只有來自該資料庫的物件才能在該資料共用中共用。可以在具有相同或不同物件細微程度的相同資料庫上建立多個資料共用。叢集可以建立的資料共用數量不限。您也可以使用 Amazon Redshift 主控台建立資料共用。如需詳細資訊，請參閱[CREATE DATASHARE](r_CREATE_DATASHARE.md)。

您也可以在建立期間控制資料共用的安全限制。下列範例顯示具有公有 IP 存取權的取用者允許讀取資料共用。

```
CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];
```

設定 PUBLICACCESSIBLE = TRUE 可讓取用者從可公開存取的叢集和已佈建的工作群組查詢您的資料共用。如果您不允許，請將其忽略，或明確地將其設定為 false。

您可以在建立資料共用之後，修改有關取用者類型的屬性。例如，您可以定義要使用指定資料共用中資料的叢集無法公開存取。若查詢來自不符合資料共用中所指定安全性限制的取用者叢集，則會在查詢執行期遭到拒絕。如需詳細資訊，請參閱[ALTER DATASHARE](r_ALTER_DATASHARE.md)。

------

## 將資料共用物件新增到資料共用
<a name="add-datashare-object-console"></a>

您可以依照下列其中一項程序，在主控台上和使用 SQL 新增各種類型的資料庫物件。

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

您可以使用**限定範圍許可**或**直接許可**區段，將物件新增至資料共用。選取**授予限定範圍許可**或**授予直接許可**以新增物件。選擇**新增**按鈕以新增物件。隨即會出現對話方塊。執行以下步驟：

1. 如果您選取**授予限定範圍許可**，則會顯示**授予限定範圍許可**頁面，您可以在此授予資料庫或結構描述層級的限定範圍許可。具有限定範圍許可的資料共用對於資料庫或結構描述內所有目前和未來的物件擁有指定的許可。如需詳細資訊，請參閱 [限定範圍權限](t_scoped-permissions.md)。

   1. 接著選取**資料庫限定範圍許可**，以授予資料庫層級的限定範圍許可。當您授予限定範圍許可時，這些許可會在建立資料共用時套用至目前的資料庫。這些許可無法授予個別物件，且同時適用於現有和新的物件 (結構描述、資料表、檢視、UDF)。

   1. 針對結構描述、資料表或檢視，或是使用者定義函式選取限定範圍許可。這表示，資料庫中的所有物件都已將選取的許可授予取用者。選取**授予**，完成授予資料庫限定範圍許可。

   1. 然後選取**結構描述限定範圍許可**，以授予結構描述層級的限定範圍許可。當您授予結構描述限定範圍許可時，新增至結構描述的所有物件都會擁有指定的資料共用許可。

   1. 從下拉式清單中選取您要新增至資料共用的結構描述。您一次只能選取單一結構描述。然後選取您要在所選取結構描述上授予的直接許可。

   1. 針對您的結構描述物件 (例如資料表、檢視和使用者定義函式) 選取限定範圍許可。這樣就會將許可授予結構描述中所有相符的物件。這些可以是現有物件或未來新增的物件。套用時，您無法在未撤銷限定範圍許可的情況下，從物件移除許可。

   1. 選取**授予**，完成授予結構描述限定範圍許可。

1. 如果您選取**授予直接許可**，則會顯示**授予直接許可**頁面，您可以在此授予每個物件層級的直接許可，例如結構描述、資料表、檢視或使用者定義函式。若要授予直接許可，您必須先將相關結構描述新增至資料共用。

   1. 接著選取**授予直接許可**給結構描述，以在特定結構描述上套用直接許可。然後為您的結構描述物件 (例如資料表、檢視和使用者定義函式) 選取結構描述許可，並選取您要新增至資料共用的結構描述。選取**授予**，完成將結構描述新增至資料共用。

   1. 您將結構描述新增至資料共用之後，就可以繼續為結構描述物件新增直接許可。再次選取**授予直接許可**。**授予直接許可**頁面隨即出現。然後導覽至結構描述物件的直接許可索引標籤。

   1. 選取**授予對資料表和檢視的直接許可**，以授予這些物件的物件層級直接許可。從清單中選取所需的直接許可和所需的物件。使用搜尋欄位來尋找資料共用物件。選取「授予」完成將資料表和檢視新增至資料共用。

   1. 選取**授予對使用者定義函式的直接許可**，以授予使用者定義函式的物件層級直接許可。從清單中選取所需的直接許可和所需的物件。使用搜尋欄位來尋找資料共用物件。選取**授予**，完成將使用者定義函式新增至資料共用。

1. 您也可以選擇是否要**新增未來的物件**。當您選擇包括新增至結構描述的資料共用物件時，表示新增至結構描述的物件會自動新增至資料共用。

1. 選擇**新增**以完成區段，並新增物件。這些全列在**資料共用物件**之下。

1. 加入物件之後，您可以選取個別物件，並編輯其權限。如果您選取結構描述，會出現對話方塊，詢問您是否要新增**限定範圍**權限。這使得結構描述中的每個現有或新增的物件都有一組預先選取的權限，適用於該物件類型。例如，管理員可以設定讓所有新增的資料表都具有 SELECT 和 UPDATE 權限。

1. 所有資料共用物件都會列在**限定範圍許可**或**直接許可**區段下。

1. 在**資料取用**者區段中，您可以新增命名空間或新增 AWS 帳戶做為資料共用的取用者。

1. 選擇**建立資料共用**以儲存變更。

建立資料共用之後，它會出現在**我的命名空間中建立的資料共用**下的清單中。如果您從清單中選擇資料共用，您可以檢視其取用者、物件及其他屬性。

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

若使用 SQL，資料共用擁有者必須授予要新增到資料共用之結構描述的 USAGE。GRANT 用於授予結構描述上的各種動作，包括 CREATE 和 USAGE。結構描述包含共用物件：

```
CREATE SCHEMA myshared_schema1;
CREATE SCHEMA myshared_schema2;
 
GRANT USAGE ON SCHEMA myshared_schema1 TO DATASHARE my_datashare;
GRANT CREATE, USAGE ON SCHEMA myshared_schema2 TO DATASHARE my_datashare;
```

或者，系統管理員也可以繼續執行 ALTER 命令，將結構描述新增至資料共用。以這種方式新增結構描述時，只會授予 USAGE 權限。

```
ALTER DATASHARE my_datashare ADD SCHEMA myshared_schema1;
```

管理員新增結構描述之後，就可以授予結構描述中物件的資料共用權限。這些是讀取和寫入權限 GRANT ALL 範例顯示如何授予所有權限。

```
GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1
TO DATASHARE my_datashare;
                     
GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;
```

您可以繼續執行像 ALTER DATASHARE 這樣的命令來新增資料表。當您這麼做時，只會授予新增物件的 SELECT 權限。

```
ALTER DATASHARE my_datashare ADD TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1;
```

您可以對資料共用授予資料庫或結構描述內某一種類型的所有物件的限定範圍許可。具有限定範圍許可的資料共用對於資料庫或結構描述內所有目前和未來的物件擁有指定的許可。

 您可以在 [SVV\_DATABASE\_PRIVILEGES](r_SVV_DATABASE_PRIVILEGES.md) 中檢視資料庫層級限定範圍許可的範圍。您可以在 [SVV\_SCHEMA\_PRIVILEGES](r_SVV_SCHEMA_PRIVILEGES.md) 中檢視結構描述層級限定範圍許可的範圍。

以下是對資料共用授予限定範圍許可的語法。如需限定範圍許可的詳細資訊，請參閱 [限定範圍權限](t_scoped-permissions.md)。

```
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] }FOR SCHEMAS IN
DATABASE db_name 
TO DATASHARE { datashare_name}

GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [PRIVILEGES] } }FOR TABLES IN
{SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
TO DATASHARE { datashare_name}

GRANT { EXECUTE | ALL [ PRIVILEGES ] }FOR FUNCTIONS IN
{SCHEMA schema_name [DATABASE db_name ] | DATABASE db_name }
TO DATASHARE { datashare_name}
```

------

## 將資料取用者新增至資料共用
<a name="add-data-consumer-console"></a>

您可以將一個或多個資料取用者新增至資料共用。資料取用者可以是唯一識別 Amazon Redshift 叢集或 的命名空間 AWS 帳戶。

您必須明確選擇關閉或開啟與具有公用存取權的叢集共用您的資料共用。
+ 選擇**將命名空間新增至資料共用**。命名空間是 Amazon Redshift 叢集的全域唯一識別碼 (GUID)。
+ 選擇**新增 AWS 帳戶** 至資料共用。指定的 AWS 帳戶 必須具有資料共用的存取許可。