Exibe bancos de dados de um catálogo de dados ou de um data warehouse do Amazon Redshift. SHOW DATABASES mostra todos os bancos de dados acessíveis; por exemplo, dentro do data warehouse, bancos de dados do AWS Glue Data Catalog (awsdatacatalog), bancos de dados de compartilhamento de dados e bancos de dados do Lake Formation.
Permissões obrigatórias
Todos os bancos de dados ficam visíveis para os usuários, mas há uma exceção:
Nos bancos de dados criados por meio de uma unidade de compartilhamento de dados com permissão para ficarem visíveis, o usuário atual deve receber a permissão USAGE no banco de dados.
Sintaxe
Para mostrar os bancos de dados de um data warehouse do Amazon Redshift:
SHOW DATABASES [ LIKE '<expression>' ] [ LIMIT row_limit ]
Para mostrar os bancos de dados de um catálogo de dados:
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 ]
Parâmetros
- ACCOUNT '<id1>', '<id2>', ...
-
As contas AWS Glue Data Catalog das quais deseja listar bancos de dados. Omitir esse parâmetro indica que o Amazon Redshift deve mostrar os bancos de dados da conta que detém o cluster.
- LIKE '<expression>'
-
Filtra a lista de bancos de dados aos correspondentes à expressão especificada por você. Esse parâmetro é compatível com padrões que usam os caracteres curinga % (porcentagem) e _ (sublinhado).
- IAM_ROLE default | 'SESSION' | 'arn:aws:iam::<account-id>:role/<role-name>'
-
Se você especificar um perfil do IAM associado ao cluster ao executar o comando SHOW DATABASES, o Amazon Redshift usará as credenciais do perfil ao executar consultas no banco de dados.
Especificar a palavra-chave
default
significa usar o perfil do IAM que está definido como padrão e associado ao cluster.Use
'SESSION'
se você se conectar ao cluster do Amazon Redshift usando uma identidade federada e acesse as tabelas do banco de dados externo criado usando o comando CREATE DATABASE. Para obter um exemplo do uso de uma identidade federada, consulte Usar uma identidade federada para gerenciar o acesso do Amazon Redshift aos recursos locais e a tabelas externas do Amazon Redshift Spectrum, que explica como configurar uma identidade federada.Use o nome do recurso da Amazon (ARN) de uma função do IAM que seu cluster usa para autenticação e autorização. No mínimo, a função do IAM deve ter permissão para executar uma operação LIST no bucket do Amazon S3 a ser acessado e uma operação GET nos objetos do Amazon S3 que constam no bucket. Para saber mais sobre bancos de dados criados por meio do AWS Glue Data Catalog para unidades de compartilhamento de dados e usando IAM_ROLE, consulte Trabalhar com unidades de compartilhamento de dados gerenciadas pelo Lake Formation como consumidor.
O exemplo a seguir mostra a sintaxe da string do parâmetro IAM_ROLE para um único ARN.
IAM_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<role-name>
'Você pode encadear funções para que seu cluster possa assumir outra função do IAM, possivelmente pertencente a outra conta. Você pode encadear até 10 funções. Para obter mais informações, consulte Encadeamento de funções do IAM no Amazon Redshift Spectrum.
Anexe a essa função do IAM uma política de permissões do IAM semelhante à política descrita a seguir.
{ "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": "*" } ] }Para obter as etapas para criar uma função do IAM a ser usada com consulta federada, consulte Criar um segredo e uma função do IAM para usar consultas federadas.
nota
Não inclua espaços na lista de funções encadeadas.
O seguinte mostra a sintaxe do encadeamento de três funções.
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
-
Cláusula para LIMITAR o número de linhas geradas. Em que row_limit é o número máximo de linhas a serem geradas. O row_limit pode ser de 0 a 10.000.
Exemplos
O exemplo a seguir exibe todos os bancos de dados do Catálogo de Dados do ID de conta 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 | |
Veja a seguir exemplos que demonstram como exibir todos os bancos de dados do catálogo de dados do ID de conta 123456789012 usando credenciais de um perfil do IAM.
SHOW DATABASES FROM DATA CATALOG ACCOUNT '123456789012' IAM_ROLE default;
SHOW DATABASES FROM DATA CATALOG ACCOUNT '123456789012' IAM_ROLE <iam-role-arn>;
O exemplo a seguir exibe todos os bancos de dados no data warehouse do Amazon Redshift conectado.
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