SHOW DATABASES - Amazon Redshift

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

SHOW DATABASES

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

語法

若要顯示來自 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 ]

參數

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 命令建立的外部資料庫存取資料表,請使用 'SESSION'。如需使用聯合身分的範例,請參閱使用聯合身分管理 Amazon Redshift 對本機資源和 Amazon Redshift Spectrum 外部資料表的存取,其中會說明如何設定聯合身分。

對叢集進行身分驗證和授權時所使用的 IAM 角色使用 Amazon Resource Name (ARN)。IAM 角色最少須具有在所要存取的 Amazon S3 儲存貯體上執行 LIST 操作,以及在儲存貯體包含的 Amazon S3 物件上執行 GET 操作的許可。若要進一步了解從 AWS Glue Data Catalog 為資料共用和使用 IAM_ROLE 建立的資料庫,請參閱以取用者身分使用 Lake Formation 管理的資料共用

以下顯示單一 ARN 的 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角色以使用聯合查詢

注意

不要在鏈結的角色清單中包含空格。

以下顯示鏈結三個角色的語法。

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

用於限制傳回資料列數的子句。其中 row_limit 是要傳回的資料列數目上限。row_limit 可以是 0 到 10,000。

範例

下列範例會顯示帳戶識別碼 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