Crear y administrar usuarios de MySQL

En esta página se explica cómo configurar la cuenta de usuario predeterminada y crear, eliminar y actualizar otras cuentas de usuario para instancias de Cloud SQL.

Para obtener información sobre cómo funcionan los usuarios con Cloud SQL, consulta el apartado sobre usuarios de MySQL.

Antes de empezar

Para realizar las tareas en esta página, tienes haber creado primero la instancia de Cloud SQL. Para obtener más información, consulta el apartado sobre crear instancias.

Si planeas usar el cliente administrativo de tu base de datos para administrar los usuarios, debes haber configurado lo siguiente:

Configurar la cuenta de usuario predeterminada

Cuando creas una nueva instancia de Cloud SQL, debes configurar la cuenta de usuario predeterminada para poder conectarte a la instancia.

Para Cloud SQL for MySQL, el usuario predeterminado es root.

Para configurar el usuario predeterminado:

Consola (2.ª generación)

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Haz clic en la instancia para abrir su página de información general.
  3. Selecciona la pestaña Usuarios.
  4. Busca el usuario root con un valor de host de % (any host) y selecciona Cambiar contraseña en el menú de acciones adicionales Icono de acciones adicionales..
  5. Introduce una contraseña segura que puedas recordar y haz clic en Aceptar.

Consola (1.ª generación)

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Haz clic en la instancia de primera generación para abrir su página de información general.
  3. Selecciona la pestaña Usuarios.
  4. Si un usuario con un nombre de usuario de root y un nombre de host de %(any host) ya aparece en la lista de usuarios, no hace falta crear el usuario raíz.

    Para restablecer la contraseña, selecciona Cambiar contraseña en el menú de acciones adicionales Icono de acciones adicionales..

  5. Si no, haz clic en Crear cuenta de usuario.
  6. En el cuadro de diálogo Crear cuenta de usuario, introduce root para el nombre de usuario y una contraseña raíz segura que puedas recordar. Deja el nombre de host establecido en Allow any host(%).
  7. Haz clic en Crear.

gcloud

Establece la contraseña para el usuario predeterminado:

gcloud sql users set-password root % \
   --instance [INSTANCE_NAME] --password [PASSWORD]

cURL

La siguiente petición utiliza el método users:update para actualizar la cuenta del usuario raíz ('root'@'%').

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "root", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=root&host=%25'

Crear un usuario

Para crear un usuario:

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona la instancia para abrir su página de información general.
  3. Selecciona la pestaña Usuarios.
  4. Haz clic en Crear cuenta de usuario.
  5. En el cuadro de diálogo Crear cuenta de usuario, especifica lo siguiente:
    • Un nombre de usuario.
    • Una contraseña.
    • Un nombre de host (opcional).
      El valor predeterminado es '%', lo que significa que la lista de host no está restringida.
  6. Haz clic en Crear.

Los usuarios creados mediante Cloud SQL disponen de todos los privilegios, excepto FILE y SUPER.

gcloud

Crea el usuario:

gcloud sql users create [USER_NAME] [HOST] \
   --instance=[INSTANCE_NAME] --password=[PASSWORD]

Los usuarios creados mediante Cloud SQL disponen de todos los privilegios, excepto FILE y SUPER.

cURL

La siguiente petición utiliza el método users:insert para crear una cuenta de usuario 'user_name'@'%'.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"host": "%", "name": "[USER_NAME]", "password": "[PASSWORD]"}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

Los usuarios creados mediante Cloud SQL disponen de todos los privilegios, excepto FILE y SUPER.

Cliente MySQL

  1. En el símbolo del sistema mysql, crea el usuario:
    CREATE USER '[USER_NAME]'@'%' IDENTIFIED BY '[PASSWORD]';
    
  2. Puedes confirmar la creación del usuario mostrando la tabla de usuario:
    SELECT user, host FROM mysql.user;
    
    En el caso de una instancia de segunda generación, el resultado es similar al que se muestra en este ejemplo:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Proporciona privilegios al usuario con la instrucción GRANT. Para obtener más información, consulta el apartado sobre privilegios proporcionados por MySQL.
  4. Vacía la tabla mysql.user para asegurarte de que se conserva el cambio:
    FLUSH TABLES mysql.user;
    

Cambiar una contraseña de usuario

Para cambiar una contraseña de usuario:

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona la instancia para abrir su página de información general.
  3. Seleccione Control de acceso > Usuarios.
  4. Haz clic en el menú de acciones adicionales Icono de acciones adicionales. para el usuario que quieres actualizar.
  5. Selecciona Cambiar contraseña, especifica una nueva contraseña y haz clic en Aceptar.

gcloud

Actualiza la contraseña:

gcloud sql users set-password [USER_NAME] [HOST] \
   --instance=[INSTANCE_NAME] --password=[PASSWORD]

cURL

La siguiente petición utiliza el método users:update para actualizar la contraseña de la cuenta de usuario 'user_name'@'%'. Si el usuario cuenta con un host distinto, debes modificar la llamada con el host correcto.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]&host=%25'

Cliente MySQL

  1. En el símbolo del sistema mysql, cambia la contraseña:
    SET PASSWORD FOR [USER] = PASSWORD('auth_string');
    
  2. Vacía la tabla mysql.user para asegurarte de que se conserva el cambio:
    FLUSH TABLES mysql.user;
    

Enumerar usuarios

Para enumerar usuarios:

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona la instancia para abrir su página de información general.
  3. Seleccione Control de acceso > Usuarios.

gcloud

Enumera los usuarios para esta instancia:

gcloud sql users list --instance=[INSTANCE_NAME]

Para obtener una lista completa de parámetros para este comando, consulta la página de referencia de la lista de usuarios de gcloud sql.

cURL

La siguiente petición utiliza el método users:list para enumerar los usuarios definidos para una instancia.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

Cliente MySQL

En el símbolo del sistema mysql, enumera los usuarios de MySQL:

SELECT user, host FROM mysql.user;

Para una instancia de segunda generación con solo la cuenta de usuario raíz configurada, el resultado es similar al que se muestra en este ejemplo:

+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
+------+-----------+
1 row in set (0.01 sec)

Este ejemplo muestra a los usuarios de una instancia donde se agregó el usuario raíz '@'% '. El campo de contraseña muestra el hash de la contraseña.

Eliminar usuarios

Para eliminar un usuario, realiza lo siguiente:

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Selecciona la instancia para abrir su página de información general.
  3. Seleccione Control de acceso > Usuarios.
  4. Haz clic en el menú de acciones adicionales Icono de acciones adicionales. para el usuario que quieres eliminar.
  5. Selecciona Eliminar y haz clic en Aceptar.

gcloud

Elimina la cuenta de usuario:

gcloud sql users delete [USER_NAME] [HOST] --instance=[INSTANCE_NAME]

cURL

La siguiente petición utiliza el método users:delete para eliminar la cuenta de usuario 'user_name'@'%'.

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": "%"}' \
     -X DELETE \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=%25&name=[USER_NAME]'

Cliente MySQL

  1. En el símbolo del sistema mysql, elimina al usuario:
    DROP USER '[USER_NAME]'@'[HOST_NAME]';
    

    Para obtener más información sobre la instrucción DROP USER, consulta la documentación de MySQL.

  2. Vacía la tabla mysql.user para asegurarte de que se conserva el cambio:
    FLUSH TABLES mysql.user;
    

Siguientes pasos