SHOW DATABASES - Amazon Redshift

SHOW DATABASES

指定したアカウント ID のデータベースを表示します。

構文

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

パラメータ

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 ロールを使用することを意味します。

フェデレーション ID を使用して Amazon Redshift クラスターに接続し、CREATE DATABASE コマンドを使用して作成した外部データベースのテーブルにアクセスする場合は、'SESSION' を使用します。フェデレーション ID の使用例については、フェデレーション ID の設定方法を説明している「フェデレーション ID を使用して、ローカルリソースと Amazon Redshift Spectrum の外部テーブルへの Amazon Redshift アクセスを管理する」を参照してください。

クラスターが認証と承認に使用する IAM ロールの Amazon リソースネーム (ARN) を使用します。少なくとも、IAM ロールには、Amazon S3 バケットで LIST オペレーションを実行してアクセスを受ける許可と、バケットに含まれる Amazon S3 オブジェクトで GET オペレーションを実行する許可が必要です。データ共有のために AWS Glue Data Catalog で作成するデータベースと IAM_ROLE の使用に関する詳細については、「コンシューマーとしての Lake Formation 管理のデータ共有を使用する」を参照してください。

以下に ARN が 1 つの場合の IAM_ROLE パラメータ文字列の構文を示します。

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

ロールを連鎖することで、クラスターは別のアカウントに属している可能性がある別の IAM ロールを引き受けることができます。最大10 個までのロールを連鎖できます。詳細については、「Amazon Redshift Spectrum での IAM ロールの連鎖」を参照してください。

この 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 ロールの作成」を参照してください。

注記

連鎖したロールのリストには空白を含めないでください。

以下に連鎖された 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>'

次の例では、アカウント 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>;