SHOW DATABASES - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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>', ...

要从中列出数据库的 Amazon 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 资源名称(ARN),您的集群使用该角色进行身份验证和授权。IAM 角色至少必须有权在要访问的 Amazon S3 桶上执行 LIST 操作和有权在该桶包含的 Amazon S3 对象上执行 GET 操作。要了解有关从 Amazon 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>'

示例

以下示例显示了来自账户 ID 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 角色的凭证时显示账户 ID 123456789012 中的所有数据目录数据库。

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