在 Amazon Redshift 中將物件新增至資料共用 - Amazon Redshift

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

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

在 Amazon Redshift 中將物件新增至資料共用

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

Console

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

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

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

    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}