Por que recebo um erro de acesso negado quando tento me conectar ao meu cluster de banco de dados do Amazon Aurora?

7 minuto de leitura
0

Quero me autenticar em meu cluster de banco de dados Amazon Aurora, edição compatível com MySQL, mas recebo o erro “Access denied” (Acesso negado).

Breve descrição

Para se autenticar em seu cluster de banco de dados do Aurora compatível com MySQL, você pode usar uma das seguintes opções:

O erro “Access denied” (Acesso negado) geralmente ocorre porque você digitou o nome de usuário ou a senha incorretos. Mas há outras causas que geram esse erro, incluindo:

  • O nome de usuário ou a senha que você digitou não são válidos.
  • Tentativa de conexão com o host errado.
  • O usuário não existe.
  • O usuário existe, mas o host do cliente não tem permissão para se conectar.
  • O SSL é obrigatório, mas o cliente não o está usando.
  • Caracteres especiais na senha estão sendo convertidos pelo Bash.
  • A autenticação do IAM está desativada.
  • Não há permissões de perfil do IAM ao usar a autenticação do IAM.
  • Há uma string de conexão incorreta.
  • Credenciais de autenticação incorretas são usadas para se conectar ao Amazon RDS Proxy. Isso se aplica quando o modo de nome de usuário/senha nativo é usado.
  • O usuário ou perfil do AWS Identity and Access Management (IAM) associado ao cliente não está autorizado a se conectar com o Amazon RDS Proxy. Isso se aplica quando a autenticação do banco de dados do IAM é usada.

Para obter mais informações sobre esse erro, consulte o tópico Access denied (Acesso negado) na documentação do MySQL.

Resolução

Verifique se a instância de banco de dados aceita conexões

Confirme se sua instância de banco de dados está no estado AVAILABLE (DISPONÍVEL). Para obter mais informações, consulte a documentação do Amazon Relational Database Service (Amazon RDS) e do Aurora para saber o status da instância de banco de dados. Consulte também o tópico Como resolvo problemas de conexão com a minha instância do banco de dados do Amazon RDS?

Solução de problemas de conexões que usam credenciais de banco de dados

Senha incorreta

Certifique-se de inserir o nome de usuário e a senha corretos ao tentar se conectar ao banco de dados. Não use caracteres especiais na senha. Para obter mais informações, consulte How do I reset the primary user password for my Amazon RDS DB instance? (Como redefino a senha do usuário principal para minha instância de banco de dados do Amazon RDS?)

Nome de usuário incorreto

Verifique se o usuário existe:

mysql> SELECT user FROM mysql.user WHERE User='username';

Se o usuário não existir, crie um novo usuário:

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'new-password-here';
mysql> FLUSH
        PRIVILEGES;

Para obter mais informações, consulte Primary user account privileges (Privilégios da conta de usuário principal).

Conexão do host errado

Ao tentar se conectar à sua instância de banco de dados, certifique-se de especificar o host (com o sinalizador -h) e a porta corretos. Verifique o nome de host e a porta do Amazon RDS consultando a página Instance (Instância) no Amazon RDS console (Console do Amazon RDS). Para obter mais informações, consulte Connecting to an Amazon Aurora DB cluster (Conectar-se a um cluster de banco de dados do Amazon Aurora).

O usuário existe, mas o host do cliente não tem permissão para o cliente se conectar

Verifique de qual host/usuário do host o MySQL permite conexões:

mysql> SELECT host, user FROM mysql.user WHERE User='username';

Em seguida, crie um usuário com o host correto (IP do cliente) ou com o% (curinga) para corresponder a qualquer endereço IP possível:

mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'new-password-here';

O SSL é obrigatório, mas o cliente não o está usando

Verifique se há usuários com SSL aplicado executando a seguinte consulta em sua instância de banco de dados:

mysql> SELECT * FROM mysql.user WHERE ssl_type <> '';

Se o usuário tiver SSL aplicado, você deverá se conectar usando SSL. Para obter mais informações, consulte Using SSL/TLS to encrypt a connection to a DB cluster (Como usar o modo SSL/TLS para criptografar uma conexão com um cluster de banco de dados).

Usuários duplicados

Verifique se há usuários com o mesmo nome de usuário:

mysql> SELECT host, user FROM mysql.user WHERE User='username';

Para resolver esse problema, faça login usando outro usuário (usuário principal duplicado) ou um usuário com permissões para DESCARTAR outros usuários. Depois que o usuário secundário for descartado, o primeiro usuário poderá se conectar normalmente.

Para obter mais informações, consulte How do I create another primary user for my Amazon RDS DB instance that is running MySQL? (Como faço para criar outro usuário principal para minha instância de banco de dados do Amazon RDS que esteja executando o MySQL?)

Caracteres especiais na senha estão sendo convertidos pelo Bash

Evite que o Bash interprete caracteres especiais colocando a senha entre aspas simples.

Um pacote de conexão não contém as informações corretas

São necessários mais do que connect_timeoutsegundos para obter um pacote de conexão. Depois de discutir isso com seu DBA, você pode ajustar o valor desse parâmetro de banco de dados para entender melhor suas consultas e workload.

O valor da variável max_allowed_packet é muito pequeno ou as consultas exigem mais memória do que você alocou para a instância de banco de dados

O valor max_allowed_packeté pequeno por padrão. Isso permite que o valor capture pacotes grandes e possivelmente incorretos. Se você estiver usando colunas BLOB grandes ou strings longas, aumente o valor de max_allowed_packet. Para obter mais informações, consulte Best practices for configuring parameters for Amazon RDS for MySQL (Práticas recomendadas para configurar parâmetros para o Amazon RDS para MySQL).

Solução de problemas de conexões que usam a autenticação do IAM

Para estabelecer conexão, consulte How do I allow users to authenticate to an Amazon RDS MySQL DB instance using their IAM credentials? (Como faço para permitir que os usuários se autentiquem em uma instância de banco de dados MySQL do Amazon RDS usando suas credenciais do IAM?)

Caso não consiga se conectar, consulte Por que estou recebendo um erro de acesso negado quando tento me conectar ao Amazon RDS para MySQL usando a autenticação do IAM?

Solução de problemas de conexões que usam o Amazon RDS Proxy

Para estabelecer conexão, consulte How do I connect to my Amazon RDS MySQL DB instance or Aurora MySQL DB cluster using Amazon RDS Proxy? (Como faço para me conectar à minha instância de banco de dados do MySQL do Amazon RDS ou ao cluster de banco de dados MySQL do Aurora usando o Amazon RDS Proxy?)

Caso não consiga se conectar, consulte Why can't I connect to my Amazon RDS DB or Amazon Aurora DB instance using RDS Proxy? (Por que não consigo me conectar à minha instância de banco de dados do Amazon RDS ou Amazon Aurora usando o RDS Proxy?)


Informações relacionadas

Connecting to an Amazon Aurora MySQL DB cluster (Conexão com um cluster de banco de dados MySQL do Amazon Aurora)

IAM database authentication for MariaDB, MySQL, and PostgreSQL (Autenticação de banco de dados do IAM para MariaDB, MySQL e PostgreSQL)

Working with parameter groups (Trabalhar com grupos de parâmetros)

How can I troubleshoot connectivity to an Amazon RDS DB instance that uses a public or private subnet of a VPC? (Como posso solucionar problemas de conectividade com uma instância de banco de dados do Amazon RDS que usa uma sub-rede pública ou privada de uma VPC?)

AWS OFICIAL
AWS OFICIALAtualizada há um ano