

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

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

# ALTER DATASHARE
<a name="r_ALTER_DATASHARE"></a>

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

## 所需權限
<a name="r_ALTER_DATASHARE-privileges"></a>

以下是 ALTER DATASHARE 所需的權限：
+ 超級使用者。
+ 具有 ALTER DATASHARE 權限的使用者。
+ 在資料共用上具有 ALTER 或 ALL 權限的使用者。
+ 若要將特定物件新增至資料共用，使用者必須要有物件的權限。在這種情況下，使用者必須是物件的擁有者，或具有物件的 SELECT、USAGE 或 ALL 權限。

## 語法
<a name="r_ALTER_DATASHARE-synopsis"></a>

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

```
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 ] }
```

## Parameters
<a name="r_ALTER_DATASHARE-parameters"></a>

*datashare\$1name*  
要修改的資料共用名稱。

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

TABLE *schema*.*table* [, ...]  
指定結構描述中要新增至資料共用的資料表或檢視名稱。

SCHEMA *schema* [, ...]   
要新增至資料共用的結構描述名稱。

FUNCTION *schema*.*sql\$1udf* (argtype,...) [, ...]  
要新增至資料共用且具有引數類型的使用者定義 SQL 函數名稱。

ALL TABLES IN SCHEMA *schema* [, ...]   
指定是否將指定結構描述中的所有資料表和檢視新增至資料共用的子句。

ALL FUNCTIONS IN SCHEMA *schema* [, ...] \$1  
指定將指定結構描述中所有函數新增至資料共用的子句。

[ SET PUBLICACCESSIBLE [=] TRUE \$1 FALSE ]  
該子句會指定資料共用是否可以共用至可公開存取的叢集。

[ SET INCLUDENEW [=] TRUE \$1 FALSE FOR SCHEMA *schema* ]  
該子句會指定是否要將指定結構描述中建立的任何未來資料表、檢視或 SQL 使用者定義函數 (UDF) 新增至資料共用。目前指定結構描述中的資料表、檢視或 SQL UDF 不會新增至資料共用。只有超級用戶可以為每個「資料共用-結構描述」配對修改此屬性。INCLUDENEW 子句會預設為 false。

## ALTER DATASHARE 使用須知
<a name="r_ALTER_DATASHARE_usage"></a>
+ 下列使用者可以修改資料共用：
  + 超級使用者
  + 資料共用的擁有者
  + 在資料共用上具有 ALTER 或 ALL 權限的使用者。
+ 若要將特定物件新增至資料共用，使用者必須要有物件的正確權限。使用者必須是物件的擁有者，或具有物件的 SELECT、USAGE 或 ALL 權限。
+ 您可以共用結構描述、資料表、一般檢視、近期繫結檢視、具體化視觀表，以及 SQL 使用者定義函數 (UDF)。在結構描述中新增物件之前，請先將結構描述新增至資料共用。

  當您新增結構描述時，Amazon Redshift 不會在其下方新增所有物件。您必須明確地新增這些物件。
+ 我們建議您在開啟公開存取設定的情況下建立 AWS Data Exchange 資料共用。
+ 一般而言，建議您不要修改 AWS Data Exchange 資料共用，以使用 ALTER DATASHARE 陳述式關閉公有可存取性。如果您這樣做，可存取資料共用的 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 資料共用以關閉可公開存取的設定，請設定下列變數，然後再次執行 ALTER DATASHARE 陳述式。

  ```
  SET datashare_break_glass_session_var to 'c670ba4db22f4b';
  ```

  ```
  ALTER DATASHARE salesshare SET PUBLICACCESSIBLE FALSE;
  ```

  在這種情況下，Amazon Redshift 會產生隨機的一次性值來設定工作階段變數，以允許對 AWS Data Exchange 資料共用執行 ALTER DATASHARE SET PUBLICACCESSIBLE FALSE。

## 範例
<a name="r_ALTER_DATASHARE_examples"></a>

下列範例會將 `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;
```