ALTER DATASHARE - Amazon Redshift

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

ALTER DATASHARE

變更資料共用的定義。您可以使用 新增或移除物件ALTERDATASHARE。您只能變更目前資料庫中的資料共用。在資料共用中新增或移除相關聯資料庫中的物件。在要新增或移除的資料共用物件上有所需許可的資料共用擁有者可以修改資料共用。

所需權限

以下是 ALTER 的必要權限DATASHARE:

  • 超級使用者。

  • 具有 ALTERDATASHARE權限的使用者。

  • 在資料共用上具有 ALTER或 ALL權限的使用者。

  • 若要將特定物件新增至資料共用,使用者必須要有物件的權限。在此情況下,使用者應該是物件的擁有者SELECT,或在物件上具有 USAGE、 或 ALL權限。

語法

下列語法說明如何在資料共用中新增或移除物件。

ALTER DATASHARE datashare_name { ADD | REMOVE } {
TABLE schema.table [, ...]
| SCHEMA schema [, ...]
| FUNCTION schema.sql_udf (argtype,...) [, ...]
| ALL TABLES IN SCHEMA schema [, ...]
| ALL FUNCTIONS IN SCHEMA schema [, ...] }

下列語法說明如何設定資料共用的屬性。

ALTER DATASHARE datashare_name {
[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]
[ SET INCLUDENEW [=] TRUE | FALSE FOR SCHEMA schema ] }

參數

datashare_name

要修改的資料共用名稱。

ADD | REMOVE

指定是否要在資料共用中新增或移除物件的子句。

TABLE 結構描述 .table 【、...】

指定結構描述中要新增至資料共用的資料表或檢視名稱。

SCHEMA 結構描述 【、...】

要新增至資料共用的結構描述名稱。

FUNCTION 結構描述 .sql_udf (argtype,...) 【,...】

使用者定義SQL函數的名稱,其中包含要新增至資料共用的引數類型。

ALL TABLES IN SCHEMA 結構描述 【、...】

指定是否將指定結構描述中的所有資料表和檢視新增至資料共用的子句。

ALL FUNCTIONS IN SCHEMA 結構描述 【、...】 }

指定將指定結構描述中所有函數新增至資料共用的子句。

[ SET PUBLICACCESSIBLE [=] TRUE | FALSE ]

該子句會指定資料共用是否可以共用至可公開存取的叢集。

SET INCLUDENEW 【【=】 TRUE | FALSE FOR SCHEMA 結構描述

指定是否將指定結構描述中建立的任何未來資料表、檢視或SQL使用者定義函數 (UDFs) 新增至資料共用的子句。指定的結構描述SQLUDFs中的目前資料表、檢視或 不會新增至資料共用。只有超級使用者可以為每個「資料共用-結構描述」配對修改此屬性。根據預設,子INCLUDENEW句為 false。

ALTER DATASHARE 用量備註

  • 下列使用者可以修改資料共用:

    • 超級使用者

    • 資料共用的擁有者

    • 在資料共用上具有 ALTER或 ALL權限的使用者

  • 若要將特定物件新增至資料共用,使用者必須要有物件的正確權限。使用者應該是物件的擁有者SELECT,或在物件上具有 USAGE、 或 ALL權限。

  • 您可以共用結構描述、資料表、常規檢視、繫結後期檢視、具體化檢視和SQL使用者定義函數 (UDFs)。在結構描述中新增物件之前,請先將結構描述新增至資料共用。

    當您新增結構描述時,Amazon Redshift 不會在其下方新增所有物件。您必須明確地新增這些物件。

  • 建議您在開啟公開存取設定的情況下建立 AWS Data Exchange 資料共用。

  • 一般而言,建議您不要變更 AWS Data Exchange 資料共用,以使用 ALTERDATASHARE陳述式關閉公有可存取性。如果您這麼做, AWS 帳戶 則具有資料共用存取權的 會在叢集可公開存取時失去存取權。執行此類修改可能會違反 AWS Data Exchange中的資料產品條款。有關此建議的例外情況,請參閱以下內容。

    下列範例顯示資料 AWS Data Exchange 共用建立時關閉設定時的錯誤。

    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE; ERROR: Alter of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value 'c670ba4db22f4b'

    若要允許變更 AWS Data Exchange 資料共用以關閉可公開存取的設定,請設定下列變數,然後再次執行ALTERDATASHARE陳述式。

    SET datashare_break_glass_session_var to 'c670ba4db22f4b';
    ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;

    在此情況下,Amazon Redshift 會產生隨機的一次性值,以設定工作階段變數以允許ALTERDATASHARESETPUBLICACCESSIBLEFALSE AWS Data Exchange 資料共用。

範例

下列範例會將public結構描述新增至資料共用 salesshare

ALTER DATASHARE salesshare ADD SCHEMA public;

下列範例會將 public.tickit_sales_redshift 資料表新增至 salesshare 資料共用。

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift;

下列範例會將所有資料表新增至 salesshare 資料共用。

ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;

下列範例會將 public.tickit_sales_redshift 資料表從 salesshare 資料共用中移除。

ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;