Usuarios de MySQL

En esta página, se describe cómo funciona Cloud SQL con usuarios de MySQL. Las cuentas de usuario de MySQL proporcionan seguridad mediante el control del acceso a las bases de datos de MySQL.

Para obtener la documentación completa sobre los usuarios de MySQL, consulta la documentación de MySQL. Para obtener más información sobre cómo crear y administrar usuarios de Cloud SQL, consulta cómo crear y administrar usuarios.

Razones por las que necesitas cuentas de usuario de MySQL

Las cuentas de usuario de MySQL te permiten acceder a tu instancia de Cloud SQL y administrarla. También se necesitan cuentas de usuario para que las aplicaciones accedan a tu instancia.

Restricciones del superusuario

Debido a que Cloud SQL para MySQL es un servicio administrado, restringe el acceso a ciertas tablas y procedimientos del sistema que requieren privilegios avanzados. En Cloud SQL, los clientes no pueden crear usuarios con atributos de superusuario ni tener acceso a ellos.

Formato de las cuentas de usuario de MySQL

Las cuentas de usuario de MySQL tienen dos componentes: un nombre de usuario y un nombre de host. El nombre de usuario identifica al usuario y el nombre de host especifica desde qué hosts se puede conectar un usuario. El nombre de usuario y el nombre de host se combinan para crear una cuenta de usuario:

'<user_name>'@'<host_name>'

Puedes especificar una dirección IP o un rango de direcciones para el nombre de host, o usar el símbolo de porcentaje (“%”) a fin de no restringir el nombre de host. Ten en cuenta que si conectas tu instancia mediante direcciones IP, debes agregar tu dirección IP de cliente como una dirección autorizada, incluso si el nombre de host no está restringido.

Las cuentas de usuario están definidas por ambos, el nombre de usuario y el nombre de host. Por ejemplo, 'root'@'%' es una cuenta de usuario diferente que 'root'@'localhost'.

Usuarios de MySQL predeterminados

Las instancias de MySQL tienen una cuenta de usuario predeterminada: 'root'@'%'.

La cuenta de usuario raíz

Configuras la cuenta de usuario raíz para una instancia nueva a fin de que puedas acceder a ella. A fin de simplificar, la cuenta de usuario raíz está configurada para conectarse desde cualquier host:

'root'@'%'

El usuario raíz tiene todos los privilegios, excepto SUPER y FILE.

Establece una contraseña segura para el usuario root. Debido a que existe en la mayoría de las instalaciones de MySQL, el usuario root es un objetivo común de los accesos no autorizados. Cualquier persona o programa que obtenga acceso a la instancia, podrá acceder a ella y a los datos y controlarlos de forma casi ilimitada. Para obtener ayuda en la configuración de la cuenta de usuario root, consulta Configura la cuenta de usuario root.

Usuarios de sistemas

Existen dos usuarios del sistema:

  • cloudsqlimport@localhost

    Se usa para importar datos.

  • cloudsqlreplica@%

    Se usa como usuario de replicación para réplicas.

No puedes borrarlos ni modificarlos.

Otras cuentas de usuario de MySQL

También puedes crear otras cuentas de usuario de MySQL. Esto es una buena idea porque te permite usar diferentes cuentas de usuario de MySQL para diferentes propósitos. También puedes crear una cuenta root con un nombre de host restringido o limitar los privilegios de las cuentas de usuario.

Para obtener más información sobre los nombres de las cuentas de usuario, consulta la documentación de MySQL

Privilegios de usuario de MySQL 5.6 y 5.7

MySQL proporciona privilegios detallados que puedes otorgarle o quitarle a un usuario. Esto te permite controlar lo que un usuario puede hacer en tu instancia.

Los usuarios creados mediante Cloud SQL tienen los mismos privilegios que el usuario root. Puedes cambiar sus privilegios mediante las declaraciones GRANT o REVOKE.

Cuando creas un usuario con el cliente mysql, debes otorgarle privilegios de manera explícita con GRANT.

Para obtener más información sobre los privilegios compatibles con MySQL, consulta Privilegios proporcionados por MySQL.

Privilegios de usuario de MySQL 8.0 (cloudsqlsuperuser)

En MySQL 8.0 para Cloud SQL, cuando creas un usuario nuevo, se le otorga de forma automática la función cloudsqlsuperuser. Es una función de Cloud SQL que contiene varios privilegios de MySQL. Esta función le otorga al usuario todos los privilegios estáticos de MySQL, a excepción de SUPER y FILE.

La función cloudsqlsuperuser solo es compatible con los siguientes privilegios dinámicos:

La función cloudsqlsuperuser no es compatible con ninguna operación del lenguaje de definición de datos (DDL) en la base de datos de MySQL.

Para ver una lista completa de los privilegios que se le otorgan a la función cloudsqlsuperuser, ejecuta la declaración SHOW GRANTS en el cliente de mysql:

SHOW GRANTS FOR 'cloudsqlsuperuser'

Próximos pasos