建立資料共用 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

建立資料共用

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

建立資料共用

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

Console

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

  1. 登入 AWS 管理主控台,開啟位於 https://console.aws.amazon.com/redshiftv2/ 的 Amazon Redshift 主控台。

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

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

  4. 選擇建立資料共用。您只能從本機資料庫建立資料共用。如果您尚未連線到資料庫,則會出現連線到資料庫頁面。依照 連線至資料庫 中的步驟連線到資料庫。如果有最近使用的連線,就會顯示建立資料共用頁面。

  5. 資料共用資訊區段中,選擇下列其中一項:

    • 選擇資料共用來建立資料共用,以便在不同的 Amazon Redshift 資料倉儲 (佈建叢集或 Serverless 端點) 或相同 AWS 帳戶 或不同 AWS 帳戶 之間共用資料以供讀取或寫入。

    • 選擇 AWS Data Exchange 資料共用以建立資料共用來透過 AWS Data Exchange 授權您的資料。

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

  7. 使用限定範圍許可直接許可區段,將物件新增至資料共用。若要將物件新增至資料共用,請參閱 在 Amazon Redshift 中建立資料共用

  8. 資料取用者區段中,您可以選擇發佈至 Amazon Redshift 或發佈至 AWS Glue Data Catalog,這會啟動使用 Lake Formation 共用資料的程序。將您的資料共用發佈至 Amazon Redshift 意味著與另一個命名空間或取用者身分的 Amazon Redshift 帳戶共用您的資料。

    注意

    建立資料共用之後,您就無法編輯要發佈到其他選項的組態。

  9. 選擇建立資料共用

SQL

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

CREATE DATASHARE salesshare;

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

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

CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];

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

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

將資料共用物件新增到資料共用

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

Console

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

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

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

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

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

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

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

    6. 選取授予,完成授予結構描述限定範圍許可。

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

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

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

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

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

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

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

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

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

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

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

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

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 中檢視資料庫層級限定範圍許可的範圍。您可以在 SVV_SCHEMA_PRIVILEGES 中檢視結構描述層級限定範圍許可的範圍。

以下是對資料共用授予限定範圍許可的語法。如需限定範圍許可的詳細資訊,請參閱 限定範圍權限

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}

將資料取用者新增至資料共用

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

您必須明確選擇關閉或開啟與具有公用存取權的叢集共用您的資料共用。

  • 選擇將命名空間新增至資料共用。命名空間是 Amazon Redshift 叢集的全域唯一識別碼 (GUID)。

  • 選擇新增 AWS 帳戶 至資料共用。指定的 AWS 帳戶 必須具有資料共用的存取許可。