

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

建立新資料庫之後，即可在目前的資料庫中建立新的結構描述。*結構描述*是包含具名資料庫物件 (例如資料表、檢視和使用者定義函數 (UDF)) 的命名空間。一個資料庫可以包含一個或多個結構描述，但每個結構描述只能屬於一個資料庫。兩個結構描述可以具有共用相同名稱的不同物件。

您可以在同一個資料庫中建立多個結構描述，以您想要的方式組織資料，或以功能方式將資料分組。例如，您可以建立結構描述來儲存所有暫存資料，以及另一個結構描述來儲存所有報表資料。您也可以建立不同的結構描述，以儲存與相同資料庫中不同業務群組相關的資料。每個結構描述可儲存不同資料庫物件，例如資料表、檢視和使用者定義函數 (UDF)。此外，您可以使用 AUTHORIZATION 子句建立結構描述。這個子句會將擁有權提供給指定的使用者，或設定指定結構描述可使用的磁碟空間上限配額。

Amazon Redshift 會自動為每個新資料庫建立名為 `public` 的結構描述。如果您在建立資料庫物件時未指定結構描述名稱，則物件會進入 `public` 結構描述。

若要存取結構描述中的物件，請使用 `schema_name.table_name` 符號限定物件。結構描述的限定名稱包含結構描述名稱和資料表名稱，並以點分隔。例如，您可能有一個 `sales` 結構定義，其中包含 `price` 資料表，以及也有 `price` 資料表的 `inventory` 結構描述。當您參照 `price` 資料表時，您必須將其限定為 `sales.price` 或 `inventory.price`。

以下範例會為使用者 `GUEST` 建立名為 **SALES** 的結構描述。

```
CREATE SCHEMA SALES AUTHORIZATION GUEST;
```

如需更多命令選項的詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》**中的 [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html)。

若要檢視資料庫中的結構描述清單，請執行以下命令。

```
select * from pg_namespace;
```

輸出應看起來如下列內容。

```
  nspname             | nspowner |         nspacl
----------------------+----------+--------------------------
  sales               |  100     |
  pg_toast            |   1      |
  pg_internal         |   1      |
  catalog_history     |   1      |
  pg_temp_1           |   1      | 
  pg_catalog          |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
  public              |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
  information_schema  |   1      | {rdsdb=UC/rdsdb,=U/rdsdb}
```

如需如何查詢目錄資料表的相關資訊，請參閱《Amazon Redshift 資料庫開發人員指南》**中的[查詢目錄資料表](https://docs.aws.amazon.com/redshift/latest/dg/c_join_PG.html)。

使用 GRANT 陳述式將結構描述的許可授予使用者。

下列範例會授與 `GUEST` 使用者權限，使其能夠使用 SELECT 陳述式從 `SALES` 結構描述中的所有資料表或檢視中選取資料。

```
GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;
```

下列範例會一次將所有可用權限授與 `GUEST` 使用者。

```
GRANT ALL ON SCHEMA SALES TO GUEST;
```