

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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 ]
```

## パラメータ
<a name="r_SHOW_DATABASES-parameters"></a>

ACCOUNT '<id1>', '<id2>', ...  
データベースを一覧表示する AWS Glue Data Catalog アカウント。このパラメータを省略すると、Amazon Redshift はクラスターを所有するアカウントのデータベースを表示します。

LIKE '<expression>'  
データベースのリストをフィルタリングして、指定した式と一致するものに絞り込みます。このパラメータは、ワイルドカード文字 % (パーセント) および \$1 (アンダースコア) を使用するパターンをサポートしています。

IAM\$1ROLE default \$1 'SESSION' \$1 'arn:aws:iam::<account-id>:role/<role-name>'  
SHOW DATABASES コマンドの実行時にクラスターに関連付けられた IAM ロールを指定すると、Amazon Redshift はデータベースに対するクエリの実行時にロールの認証情報を使用します。  
`default` キーワードを指定することは、デフォルトとして設定されてクラスターに関連付けられている IAM ロールを使用することを意味します。  
フェデレーション ID を使用して Amazon Redshift クラスターに接続し、[CREATE DATABASE](r_CREATE_DATABASE.md) コマンドを使用して作成した外部データベースのテーブルにアクセスする場合は、`'SESSION'` を使用します。フェデレーション ID の使用例については、フェデレーション ID の設定方法を説明している「[フェデレーション ID を使用して、ローカルリソースと Amazon Redshift Spectrum の外部テーブルへの Amazon Redshift アクセスを管理する](https://docs.aws.amazon.com/redshift/latest/mgmt/authorization-fas-spectrum.html)」を参照してください。  
クラスターが認証と認可に使用する IAM ロールの Amazon リソースネーム (ARN) を使用します。少なくとも、IAM ロールには、Amazon S3 バケットで LIST オペレーションを実行してアクセスを受ける許可と、バケットに含まれる Amazon S3 オブジェクトで GET オペレーションを実行する許可が必要です。データ共有のために AWS Glue Data Catalog で作成するデータベースと IAM\$1ROLE の使用に関する詳細については、「[コンシューマーとしての Lake Formation 管理のデータ共有を使用する](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html)」を参照してください。  
以下に ARN が 1 つの場合の IAM\$1ROLE パラメータ文字列の構文を示します。  

```
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)」を参照してください。  
連鎖したロールのリストには空白を含めないでください。
以下に連鎖された 3 つのロールの構文を示します。  

```
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\$1limit*  
返される行の数を制限する句。*row\$1limit* は、返される行の最大数です。*row\$1limit* には、0～10,000 の値を指定できます。

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

次の例では、アカウント ID 123456789012 のすべてのデータカタログデータベースを表示します。

```
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 ロールの認証情報を使用して、アカウント ID 123456789012 のすべてのデータカタログデータベースを表示する方法を示す例は、以下のとおりです。

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