

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

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

# SHOW DATABASES
<a name="r_SHOW_DATABASES"></a>

顯示來自 Data Catalog 或 Amazon Redshift 資料倉儲的資料庫。SHOW DATABASES 列出所有可存取的資料庫，例如資料倉儲、 AWS Glue Data Catalog 資料庫 (awsdatacatalog)、資料共用資料庫和 Lake Formation 資料庫。

## 所需的許可
<a name="r_SHOW_DATABASES-privileges"></a>

使用者可以看到所有資料庫，除了：
+ 若要看見從具有許可的資料共用建立的資料庫，就必須授予目前使用者資料庫上的 USAGE 許可。

## 語法
<a name="r_SHOW_DATABASES-syntax"></a>

若要顯示來自 Amazon Redshift 資料倉儲的資料庫：

```
SHOW DATABASES 
[ LIKE '<expression>' ]
[ LIMIT row_limit ]
```

若要顯示來自 Data Catalog 的資料庫：

```
SHOW DATABASES FROM DATA CATALOG 
[ ACCOUNT  '<id1>', '<id2>', ... ]
[ LIKE '<expression>' ]
[ IAM_ROLE default | 'SESSION' | 'arn:aws:iam::<account-id>:role/<role-name>' ]
[ LIMIT row_limit ]
```

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

ACCOUNT '<id1>', '<id2>', ...  
要從中列出資料庫 AWS Glue Data Catalog 的帳戶。省略此參數表示 Amazon Redshift 應該顯示擁有叢集之帳戶中的資料庫。

LIKE '<expression>'  
從資料庫清單中篩選符合您指定運算式的資料庫。此參數支援使用萬用字元 % (百分比) 和 \_ (底線) 的模式。

IAM\_ROLE default \| 'SESSION' \| 'arn:aws:iam::<account-id>:role/<role-name>'  
如果您在執行 SHOW DATABASES 命令時指定與叢集關聯的 IAM 角色，當您在資料庫上執行查詢時，Amazon Redshift 將會使用該角色的登入資料。  
指定 `default` 關鍵字表示使用設定為預設值且與叢集相關聯的 IAM 角色。  
如果您使用聯合身分連線到 Amazon Redshift 叢集，並從使用 [CREATE DATABASE](r_CREATE_DATABASE.md) 命令建立的外部資料庫存取資料表，請使用 `'SESSION'`。如需使用聯合身分的範例，請參閱[使用聯合身分管理 Amazon Redshift 對本機資源和 Amazon Redshift Spectrum 外部資料表的存取](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html)，其中會說明如何設定聯合身分。  
對叢集進行身分驗證和授權時所使用的 IAM 角色使用 Amazon Resource Name (ARN)。IAM 角色最少須具有在所要存取的 Amazon S3 儲存貯體上執行 LIST 操作，以及在儲存貯體包含的 Amazon S3 物件上執行 GET 操作的許可。若要進一步了解從 AWS Glue Data Catalog 為資料共用和使用 IAM\_ROLE 建立的資料庫，請參閱[以取用者身分使用 Lake Formation 管理的資料共用](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html)。  
以下顯示單一 ARN 的 IAM\_ROLE 參數字串語法。  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-name>}}'
```
您可以鏈結角色，以便您的叢集可以擔任其他 IAM 角色 (可能屬於其他帳戶)。您最多可以鏈結 10 個角色。如需詳細資訊，請參閱[在 Amazon Redshift Spectrum 中鏈結 IAM 角色](c-spectrum-iam-policies.md#c-spectrum-chaining-roles)。  
 對於此 IAM 角色，請附加與以下內容相似的 IAM 許可政策。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessSecret",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": "arn:aws:secretsmanager:{{us-west-2}}:{{123456789012}}:secret:my-rds-secret-VNenFy"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        }
    ]
}
```
如需建立 IAM 角色以搭配聯合查詢使用的步驟，請參閱[建立秘密和 IAM 角色來使用聯合查詢](federated-create-secret-iam-role.md)。  
不要在鏈結的角色清單中包含空格。
以下顯示鏈結三個角色的語法。  

```
IAM_ROLE 'arn:aws:iam::{{<aws-account-id>}}:role/{{<role-1-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-2-name>}},arn:aws:iam::{{<aws-account-id>}}:role/{{<role-3-name>}}'
```

LIMIT *row\_limit*  
限制 (LIMIT) 傳回列數的子句。其中 *row\_limit* 是要傳回的列數上限。*row\_limit* 可以是 0 到 10,000。

## 範例
<a name="r_SHOW_DATABASES-examples"></a>

下列範例會顯示帳戶識別碼 123456789012 中的所有 Data Catalog 資料庫。

```
SHOW DATABASES FROM DATA CATALOG ACCOUNT '123456789012'

  catalog_id  | database_name |                        database_arn                    |     type     |                                             target_database                                      | location | parameters
--------------+---------------+--------------------------------------------------------+--------------+--------------------------------------------------------------------------------------------------+----------+------------
 123456789012 |   database1   | arn:aws:glue:us-east-1:123456789012:database/database1 | Data Catalog |                                                                                                  |          |
 123456789012 |   database2   | arn:aws:glue:us-east-1:123456789012:database/database2 | Data Catalog | arn:aws:redshift:us-east-1:123456789012:datashare:035c45ea-61ce-86f0-8b75-19ac6102c3b7/database2 |          |
```

以下範例會示範如何在使用 IAM 角色的登入資料時，顯示帳戶識別碼 123456789012 中的所有 Data Catalog 資料庫。

```
SHOW DATABASES FROM DATA CATALOG ACCOUNT '123456789012' IAM_ROLE default;
```

```
SHOW DATABASES FROM DATA CATALOG ACCOUNT '123456789012' IAM_ROLE <iam-role-arn>;
```

下列範例顯示已連線 Amazon Redshift 資料倉儲中的所有資料庫。

```
SHOW DATABASES

database_name  | database_owner | database_type        | database_acl | parameters | database_isolation_level
---------------+----------------+----------------------+--------------+------------+--------------------
awsdatacatalog | 1              | auto mounted catalog | NULL         | UNKNOWN    | UNKNOWN
dev            | 1              | local                | NULL         | NULL       | Snapshot Isolation
```