¿Por qué aparece un error de acceso denegado cuando intento conectarme a mi clúster de base de datos de Amazon Aurora?

7 minutos de lectura
0

Quiero autenticarme en mi clúster de base de datos de la edición compatible con MySQL de Amazon Aurora, pero aparece el error “Acceso denegado”.

Descripción breve

Para autenticarse en su clúster de base de datos compatible con MySQL de Aurora, puede utilizar una de estas opciones:

El error “Access denied” (Acceso denegado) suele producirse porque ha introducido un nombre de usuario o una contraseña incorrectos. Sin embargo, este error se puede deber a otras causas, entre ellas:

  • El nombre de usuario o la contraseña que ha introducido no son válidos.
  • Se ha intentado la conexión con el host incorrecto.
  • El usuario no existe.
  • El usuario existe, pero el host del cliente no tiene permiso para conectarse.
  • Se requiere SSL, pero el cliente no lo usa.
  • Bash está convirtiendo los caracteres especiales de la contraseña.
  • La autenticación de IAM está desactivada.
  • Los permisos de rol de IAM son insuficientes cuando se utiliza la autenticación de IAM.
  • Hay una cadena de conexión incorrecta.
  • Se están utilizando credenciales de autenticación incorrectas para conectarse a Amazon RDS Proxy. Esto se aplica cuando se utiliza el modo nativo de nombre de usuario y contraseña.
  • El usuario o rol de AWS Identity and Access Management (IAM) asociado al cliente no está autorizado a conectarse a Amazon RDS Proxy. Esto se aplica cuando se utiliza la autenticación de base de datos de IAM.

Para obtener más información sobre este error, consulte la documentación de MySQL sobre acceso denegado.

Resolución

Comprobar que la instancia de base de datos acepta conexiones

Confirme que su instancia de base de datos se encuentra actualmente en el estado AVAILABLE (DISPONIBLE). Para obtener más información, consulte la documentación de Amazon Relational Database Service (Amazon RDS) y Aurora sobre el estado de la instancia de base de datos. Consulte también ¿Cómo soluciono los problemas de conexión con la instancia de base de datos de Amazon RDS?

Solucionar problemas de conexiones que utilizan credenciales de base de datos

Contraseña incorrecta

Asegúrese de introducir el nombre de usuario y la contraseña correctos cuando intente conectarse a la base de datos. No utilice caracteres especiales en la contraseña. Para obtener más información, consulte How do I reset the primary user password for my Amazon RDS DB instance? (¿Cómo restablezco la contraseña de usuario principal de mi instancia de base de datos de Amazon RDS?).

Nombre de usuario incorrecto

Compruebe si el usuario existe:

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

Si el usuario no existe, cree uno nuevo:

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

Para obtener más información, consulte Primary user account privileges (Privilegios de la cuenta de usuario principal).

Conexión desde el host incorrecto

Cuando intente conectarse a su instancia de base de datos, asegúrese de especificar el host (con el indicador -h) y el puerto correctos. Para comprobar el nombre de host y el puerto de Amazon RDS, consulte la página Instance (Instancia) de la consola de Amazon RDS. Para obtener más información, consulte Connecting to an Amazon Aurora DB cluster (Conexión a un clúster de base de datos de Amazon Aurora).

El usuario existe, pero el host del cliente no tiene permiso para conectarse

Compruebe desde qué host o usuario de host permite conexiones MySQL:

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

A continuación, cree un usuario con el host correcto (IP del cliente) o con el % (comodín) para que coincida con cualquier dirección IP posible:

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

Se requiere SSL, pero el cliente no lo usa

Compruebe si hay usuarios con SSL aplicado; para ello, ejecute la siguiente consulta en la instancia de base de datos:

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

Si el usuario tiene SSL aplicado, debe conectarse mediante SSL. Para obtener más información, consulte Using SSL/TLS to encrypt a connection to a DB cluster (Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos).

Usuarios duplicados

Compruebe si hay usuarios con el mismo nombre de usuario:

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

Para resolver este problema, inicie sesión con otro usuario (usuario principal duplicado) o un usuario con permisos para ELIMINAR a otros usuarios. Una vez eliminado el usuario secundario, el primer usuario puede conectarse de forma normal.

Para obtener más información, consulte How do I create another primary user for my Amazon RDS DB instance that is running MySQL? (¿Cómo creo otro usuario principal para mi instancia de base de datos de Amazon RDS que ejecuta MySQL?).

Bash está convirtiendo los caracteres especiales de la contraseña

Si escribe la contraseña entre comillas simples, evitará que Bash interprete los caracteres especiales.

Un paquete de conexión no contiene la información correcta

Se necesitan más de connect_timeout segundos para obtener un paquete de conexión. Tras comentarlo con el DBA, puede ajustar el valor de este parámetro de base de datos para comprender mejor sus consultas y su carga de trabajo.

El valor de la variable max_allowed_packet es demasiado pequeño o las consultas requieren más memoria de la que ha asignado a la instancia de base de datos

El valor de max_allowed_packet es pequeño de forma predeterminada. Esto permite que el valor capture paquetes grandes y, posiblemente, incorrectos. Si utiliza columnas BLOB grandes o cadenas largas, aumente el valor de max_allowed_packet. Para obtener más información, consulte Best practices for configuring parameters for Amazon RDS for MySQL (Prácticas recomendadas para configurar los parámetros de Amazon RDS para MySQL).

Solucionar problemas de conexiones que utilizan la autenticación de IAM

Para conectarse, consulte How do I allow users to authenticate to an Amazon RDS MySQL DB instance using their IAM credentials? (¿Cómo permito que los usuarios se autentiquen en una instancia de base de datos MySQL de Amazon RDS con sus credenciales de IAM?).

Si no puede conectarse, consulte ¿Por qué aparece un error de acceso denegado cuando intento conectarme a Amazon RDS para MySQL utilizando la autenticación de IAM?

Solucionar problemas de conexiones que utilizan Amazon RDS Proxy

Para conectarse, consulte How do I connect to my Amazon RDS MySQL DB instance or Aurora MySQL DB cluster using Amazon RDS Proxy? (¿Cómo me conecto a mi instancia de base de datos MySQL de Amazon RDS o a mi clúster de base de datos MySQL de Aurora mediante Amazon RDS Proxy?).

Si no puede conectarse, consulte Why can't I connect to my Amazon RDS DB or Amazon Aurora DB instance using RDS Proxy? (¿Por qué no puedo conectarme a mi instancia de base de datos de Amazon RDS o Amazon Aurora mediante RDS Proxy?).


Información relacionada

Connecting to an Amazon Aurora MySQL DB cluster (Conexión a un clúster de base de datos MySQL de Amazon Aurora)

IAM database authentication for MariaDB, MySQL, and PostgreSQL (Autenticación de bases de datos de IAM para MariaDB, MySQL y PostgreSQL)

Working with parameter groups (Trabajar con 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? (¿Cómo puedo solucionar los problemas de conectividad a una instancia de base de datos de Amazon RDS que utiliza una subred pública o privada de una VPC?)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año