Administrar usuarios con autenticación integrada

Esta página describe cómo habilitar y utilizar la autenticación integrada de Cloud SQL.

Para obtener una descripción general, consulte Autenticación de base de datos integrada de Cloud SQL .

Antes de crear usuarios

  1. Cree una instancia de Cloud SQL. Para obtener más información, consulte Crear instancias .
  2. Habilite las políticas de contraseñas para la instancia. Para obtener más información, consulte Políticas de contraseñas de instancia .
  3. Si planea utilizar el cliente administrativo de su base de datos para administrar usuarios, haga lo siguiente:

    1. Conecte el cliente a su instancia. Consulte Opciones de conexión para aplicaciones externas .

    2. Configure el usuario predeterminado en la instancia estableciendo la contraseña. Consulte Establecer la contraseña para la cuenta de usuario predeterminada .

Establecer la contraseña para la cuenta de usuario predeterminada

Cuando crea una nueva instancia de Cloud SQL, debe establecer una contraseña para la cuenta de usuario predeterminada antes de poder conectarse a la instancia.

Para Cloud SQL para MySQL, el usuario predeterminado es root@% Esto significa un usuario de base de datos con un nombre de usuario root que puede conectarse desde cualquier host ( @% ).

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Busque el usuario root y luego seleccione Cambiar contraseña en el menú de más acciones Icono de más acciones. .

    Tenga en cuenta las estipulaciones enumeradas para la contraseña, que se derivan de la política de contraseñas establecida para la instancia.

  5. Proporcione una contraseña segura que pueda recordar y haga clic en Aceptar .

nube g

Utilice el comando gcloud sql users set-password de la siguiente manera para establecer la contraseña del usuario predeterminado.

Reemplace INSTANCE_NAME con el nombre de la instancia antes de ejecutar el comando.

gcloud sql users set-password root \
--host=% \
--instance=INSTANCE_NAME \
--prompt-for-password

REST versión 1

Para actualizar la contraseña de la cuenta de usuario predeterminada, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • password : La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25

Cuerpo JSON de la solicitud:

{
  "name": "root",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para actualizar la contraseña de la cuenta de usuario predeterminada, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • password : La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25

Cuerpo JSON de la solicitud:

{
  "name": "root",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Crear un usuario

Después de configurar la cuenta de usuario predeterminada , puede crear otros usuarios.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en Agregar cuenta de usuario .

    En la página Agregar una cuenta de usuario a la instancia instance_name , puede elegir si el usuario se autentica con el método de base de datos integrado (nombre de usuario y contraseña) o como un usuario IAM .

  5. Seleccione Autenticación incorporada (predeterminada) y agregue la siguiente información:
    • Un nombre de usuario .
    • Opcional. Una contraseña . Proporciona una contraseña segura y fácil de recordar.
    • Opcional. La política de contraseñas del usuario .
    • En la sección Nombre de host , la opción predeterminada es Permitir cualquier host , lo que significa que el usuario puede conectarse desde cualquier dirección IP. Opcionalmente, seleccione Restringir host por dirección IP o rango de direcciones e introduzca una dirección IP o rango de direcciones en la sección Host . El usuario solo podrá conectarse desde la dirección IP especificada.
  6. Haga clic en Agregar .

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

nube g

Para crear un usuario, utilice el comando gcloud sql users create .

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
  • PASSWORD : La contraseña del usuario.
gcloud sql users create USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

Terraformar

Para crear un usuario, utilice un recurso de Terraform .

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.instance.name
  password = random_password.pwd.result
}

Aplicar los cambios

Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.

Preparar Cloud Shell

  1. Inicie Cloud Shell .
  2. Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si establece valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz ).

  1. En Cloud Shell , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión .tf ; por ejemplo, main.tf En este tutorial, el archivo se denomina main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.

    Copie el código de muestra en el main.tf recién creado.

    Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
  4. Guarde sus cambios.
  5. Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
    terraform init

    Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción -upgrade :

    terraform init -upgrade

Aplicar los cambios

  1. Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
    terraform plan

    Realice correcciones en la configuración según sea necesario.

  2. Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando yes en el indicador:
    terraform apply

    Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"

  3. Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.

Eliminar los cambios

Para eliminar sus cambios, haga lo siguiente:

  1. Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento deletion_protection en false .
    deletion_protection =  "false"
  2. Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando yes en el mensaje:
    terraform apply
  1. Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando yes en el mensaje:

    terraform destroy

REST versión 1

Para crear un usuario, utilice una solicitud POST con el método users:insert .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La contraseña del usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

REST v1beta4

Para crear un usuario, utilice una solicitud POST con el método users:insert .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La contraseña del usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

Cliente MySQL

  1. Para crear un usuario, en el indicador mysql , utilice la siguiente instrucción CREATE USER :
      CREATE USER 'USER_NAME'@'%'
         IDENTIFIED BY 'PASSWORD';
      

    Opcionalmente, agregue los parámetros de la política de contraseña del usuario .

  2. Puede confirmar la creación del usuario mostrando la tabla de usuarios:
    SELECT user, host FROM mysql.user;
    Para una instancia de segunda generación, la salida se parece a este ejemplo:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Otorgue privilegios al usuario con la sentencia GRANT . Para más información, consulte Privilegios proporcionados por MySQL .
  4. Vacíe la tabla mysql.user para garantizar que el cambio persista:
      FLUSH TABLES mysql.user;

Establecer una política de contraseñas de usuario

Puede establecer una política de contraseñas con el tipo de autenticación incorporado.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario cuya política desea cambiar.
  5. Seleccione Editar política de contraseñas .
  6. En la sección Política de contraseña , seleccione una o más de las siguientes opciones:
    • Establecer que la contraseña caduque : especifica el número de días después de los cuales la contraseña caducará y el usuario deberá crear una nueva.
    • Bloquear después de intentos fallidos : especifica la cantidad de veces que un usuario puede intentar ingresar la contraseña incorrectamente antes de que se bloquee la cuenta.

      Compatible solo con Cloud SQL para MySQL 8.0 y versiones posteriores.

    • Requerir contraseña actual cuando se cambia la contraseña : requiere que los usuarios ingresen su contraseña existente cuando intenten cambiarla.

nube g

Para establecer la política de contraseña de usuario, utilice el comando gcloud sql users set-password-policy .

Utilice --password-policy-enable-password-verification para que sea obligatorio que los usuarios introduzcan su contraseña actual al intentar cambiarla. Para desactivar este parámetro, utilice --no-password-policy-enable-password-verification .

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • INSTANCE_NAME : El nombre de la instancia.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS : Opcional: El número de veces que un usuario puede intentar la contraseña incorrectamente antes de que se bloquee la cuenta. Use --password-policy-enable-failed-attempts-check para habilitar la verificación y --no-password-policy-enable-failed-attempts-check para deshabilitarla.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION : Opcional: especifica el número de días después de los cuales la contraseña caduca y el usuario debe crear una nueva.
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--password-policy-enable-failed-attempts-check \
--password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \
--password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION \
--password-policy-enable-password-verification

Para eliminar una política de contraseña de usuario, utilice el parámetro --clear-password-policy .

gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

REST versión 1

Para establecer una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario
  • FAILED_ATTEMPTS_CHECK : configúrelo como true para habilitar una verificación de la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS : la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION : el número de días después de los cuales la contraseña expira y el usuario necesita crear una nueva
  • VERIFY_PASSWORD : configúrelo como true para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

REST v1beta4

Para establecer una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario
  • FAILED_ATTEMPTS_CHECK : configúrelo como true para habilitar una verificación de la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS : la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION : el número de días después de los cuales la contraseña expira y el usuario necesita crear una nueva
  • VERIFY_PASSWORD : configúrelo como true para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

Cliente MySQL

Para establecer una política de contraseña de usuario, en el indicador mysql , utilice la siguiente declaración ALTER USER :

ALTER USER USER_NAME
    FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS
    PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY
    PASSWORD REQUIRE CURRENT;

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • ALLOWED_FAILED_ATTEMPTS : Opcional: la cantidad de veces que un usuario puede intentar ingresar la contraseña incorrectamente antes de que se bloquee la cuenta.
  • PASSWORD_EXPIRATION_DURATION : Opcional: especifica el número de días después de los cuales la contraseña caduca y el usuario debe crear una nueva.

Utilice la opción PASSWORD REQUIRE CURRENT para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña.

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

Lista de usuarios

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.

    La lista muestra el User name , Host name y el tipo Authentication para cada usuario.

    Además, para el tipo de autenticación incorporada, también se indica el Password status .

nube g

Utilice el comando gcloud sql users list para enumerar los usuarios de esta instancia:

gcloud sql users list \
--instance=INSTANCE_NAME

El comando devuelve el Name , Host y Type de autenticación de cada usuario.

Además, para el tipo de autenticación integrada, se devuelven la configuración y el estado de la política de contraseñas. Por ejemplo:

    NAME    HOST    TYPE        PASSWORD_POLICY
    user1           BUILT_IN    {'allowedFailedAttempts': 2,
                                 'enableFailedAttemptsCheck': True,
                                 'passwordExpirationDuration': '7d',
                                 'status': {
                                   'locked': True,
                                   'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
                                 }
                                }
   

REST versión 1

Para enumerar los usuarios definidos para una instancia, utilice una solicitud GET con el método users:list .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario , la sección items de la respuesta incluye una sección passwordPolicy . El siguiente ejemplo de código muestra la sección passwordPolicy .

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

REST v1beta4

Para enumerar los usuarios definidos para una instancia, utilice una solicitud GET con el método users:list .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario , la sección items de la respuesta incluye una sección passwordPolicy . El siguiente ejemplo de código muestra la sección passwordPolicy .

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

Cliente MySQL

Para enumerar los usuarios de MySQL, en el indicador mysql , utilice la siguiente declaración SELECT :

SELECT user, host FROM mysql.user;

Para una instancia de segunda generación con solo la cuenta de usuario root configurada, el resultado se parece a este ejemplo:

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

Este ejemplo muestra los usuarios de una instancia con el usuario root . Este usuario puede conectarse desde cualquier host ( % ). El campo de contraseña muestra el hash de la contraseña.

Cambiar una contraseña de usuario

Las contraseñas de usuario se pueden cambiar de una de las siguientes maneras.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario que desea actualizar.
  5. Seleccione Cambiar contraseña .
  6. Especifique una nueva contraseña.

    Además, si desea seguir usando su contraseña anterior, seleccione la casilla de verificación Conservar contraseña actual .

  7. Haga clic en Aceptar .

nube g

Utilice el comando gcloud sql users set-password para cambiar una contraseña.

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
  • PASSWORD : Una contraseña. Debe cumplir con los requisitos de las políticas de contraseñas, si están establecidas.

Opcionalmente, para MySQL 8.0 y versiones posteriores, puede seguir permitiendo que el usuario use la contraseña anterior con la opción --retain-password . Para descartar la contraseña anterior, utilice la opción --discard-dual-password .

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

REST versión 1

Para cambiar una contraseña de usuario, utilice una solicitud PUT con el método users:update .

La siguiente solicitud actualiza la contraseña de la cuenta de usuario user_name'@'% . Si su usuario tiene un host diferente, debe modificar la llamada con el host correcto.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La nueva contraseña para el usuario
  • dual-password : Uno de estos valores de enumeración:
    • DUAL_PASSWORD : El usuario puede continuar usando la contraseña anterior.
    • NO_DUAL_PASSWORD : El usuario no puede utilizar la contraseña anterior.
    • NO_MODIFY_DUAL_PASSWORD : El estado de la contraseña dual permanece sin cambios.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para cambiar una contraseña de usuario, utilice una solicitud PUT con el método users:update .

La siguiente solicitud actualiza la contraseña de la cuenta de usuario user_name'@'% . Si su usuario tiene un host diferente, debe modificar la llamada con el host correcto.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La nueva contraseña para el usuario
  • dual-password : Uno de estos valores de enumeración:
    • DUAL_PASSWORD : El usuario puede continuar usando la contraseña anterior.
    • NO_DUAL_PASSWORD : El usuario no puede utilizar la contraseña anterior.
    • NO_MODIFY_DUAL_PASSWORD : El estado de la contraseña dual permanece sin cambios.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Cliente MySQL

  1. Para cambiar la contraseña, en el indicador mysql , utilice la siguiente instrucción SET PASSWORD :
    SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
  2. Vacíe la tabla mysql.user para garantizar que el cambio persista:
    FLUSH TABLES mysql.user;

Si un usuario queda bloqueado debido a la configuración de la política de contraseñas, cámbiela para desbloquearlo. Asegúrese de que, al cambiarlas, las contraseñas cumplan con la política de contraseñas.

Eliminar una política de contraseña de usuario

Puede eliminar una política de contraseña de un usuario que tenga el tipo de autenticación incorporado.

nube g

Para eliminar la política de contraseña de usuario, utilice el comando gcloud sql users set-password-policy y el parámetro --clear-password-policy .

Reemplace lo siguiente:

  • USER_NAME : el nombre de usuario
  • INSTANCE_NAME : el nombre de la instancia
  • HOST : el nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % )
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST versión 1

Para eliminar una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

REST v1beta4

Para eliminar una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Eliminar un usuario

El usuario predeterminado puede eliminar usuarios.

Antes de eliminar un usuario, debe eliminar todos los objetos que posee o reasignar su propiedad y revocar cualquier privilegio que se le haya otorgado al rol sobre otros objetos.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario que desea eliminar.
  5. Seleccione Eliminar y luego seleccione Eliminar nuevamente.

nube g

Utilice el comando gcloud sql users delete para eliminar un usuario.

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
gcloud sql users delete USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME

REST versión 1

La siguiente solicitud utiliza el método users:delete para eliminar la cuenta de usuario especificada.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : Su ID de proyecto
  • INSTANCE_ID : El ID de instancia deseado
  • USERNAME : La dirección de correo electrónico del usuario o cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

La siguiente solicitud utiliza el método users:delete para eliminar la cuenta de usuario especificada.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : Su ID de proyecto
  • INSTANCE_ID : El ID de instancia deseado
  • USERNAME : La dirección de correo electrónico del usuario o cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cliente MySQL

  1. Para eliminar un usuario, en el indicador mysql , utilice la siguiente instrucción DROP USER :
    DROP USER 'USER_NAME'@'HOST_NAME';
  2. Vacíe la tabla mysql.user para garantizar que el cambio persista:
    FLUSH TABLES mysql.user;

Actualizar las propiedades del usuario

Para actualizar las propiedades del usuario, como el host o los privilegios, debe usar el cliente mysql . Para más información, consulte "Administración de cuentas de usuario de MySQL" en la documentación de MySQL.

¿Qué sigue?

,

Esta página describe cómo habilitar y utilizar la autenticación integrada de Cloud SQL.

Para obtener una descripción general, consulte Autenticación de base de datos integrada de Cloud SQL .

Antes de crear usuarios

  1. Cree una instancia de Cloud SQL. Para obtener más información, consulte Crear instancias .
  2. Habilite las políticas de contraseñas para la instancia. Para obtener más información, consulte Políticas de contraseñas de instancia .
  3. Si planea utilizar el cliente administrativo de su base de datos para administrar usuarios, haga lo siguiente:

    1. Conecte el cliente a su instancia. Consulte Opciones de conexión para aplicaciones externas .

    2. Configure el usuario predeterminado en la instancia estableciendo la contraseña. Consulte Establecer la contraseña para la cuenta de usuario predeterminada .

Establecer la contraseña para la cuenta de usuario predeterminada

Cuando crea una nueva instancia de Cloud SQL, debe establecer una contraseña para la cuenta de usuario predeterminada antes de poder conectarse a la instancia.

Para Cloud SQL para MySQL, el usuario predeterminado es root@% Esto significa un usuario de base de datos con un nombre de usuario root que puede conectarse desde cualquier host ( @% ).

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Busque el usuario root y luego seleccione Cambiar contraseña en el menú de más acciones Icono de más acciones. .

    Tenga en cuenta las estipulaciones enumeradas para la contraseña, que se derivan de la política de contraseñas establecida para la instancia.

  5. Proporcione una contraseña segura que pueda recordar y haga clic en Aceptar .

nube g

Utilice el comando gcloud sql users set-password de la siguiente manera para establecer la contraseña del usuario predeterminado.

Reemplace INSTANCE_NAME con el nombre de la instancia antes de ejecutar el comando.

gcloud sql users set-password root \
--host=% \
--instance=INSTANCE_NAME \
--prompt-for-password

REST versión 1

Para actualizar la contraseña de la cuenta de usuario predeterminada, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • password : La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25

Cuerpo JSON de la solicitud:

{
  "name": "root",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para actualizar la contraseña de la cuenta de usuario predeterminada, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • password : La contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25

Cuerpo JSON de la solicitud:

{
  "name": "root",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Crear un usuario

Después de configurar la cuenta de usuario predeterminada , puede crear otros usuarios.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en Agregar cuenta de usuario .

    En la página Agregar una cuenta de usuario a la instancia instance_name , puede elegir si el usuario se autentica con el método de base de datos integrado (nombre de usuario y contraseña) o como un usuario IAM .

  5. Seleccione Autenticación incorporada (predeterminada) y agregue la siguiente información:
    • Un nombre de usuario .
    • Opcional. Una contraseña . Proporciona una contraseña segura y fácil de recordar.
    • Opcional. La política de contraseñas del usuario .
    • En la sección Nombre de host , la opción predeterminada es Permitir cualquier host , lo que significa que el usuario puede conectarse desde cualquier dirección IP. Opcionalmente, seleccione Restringir host por dirección IP o rango de direcciones e introduzca una dirección IP o rango de direcciones en la sección Host . El usuario solo podrá conectarse desde la dirección IP especificada.
  6. Haga clic en Agregar .

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

nube g

Para crear un usuario, utilice el comando gcloud sql users create .

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
  • PASSWORD : La contraseña del usuario.
gcloud sql users create USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME \
--password=PASSWORD

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

Terraformar

Para crear un usuario, utilice un recurso de Terraform .

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.instance.name
  password = random_password.pwd.result
}

Aplicar los cambios

Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.

Preparar Cloud Shell

  1. Inicie Cloud Shell .
  2. Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si establece valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz ).

  1. En Cloud Shell , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión .tf ; por ejemplo, main.tf En este tutorial, el archivo se denomina main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.

    Copie el código de muestra en el main.tf recién creado.

    Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
  4. Guarde sus cambios.
  5. Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
    terraform init

    Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción -upgrade :

    terraform init -upgrade

Aplicar los cambios

  1. Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
    terraform plan

    Realice correcciones en la configuración según sea necesario.

  2. Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando yes en el indicador:
    terraform apply

    Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"

  3. Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.

Eliminar los cambios

Para eliminar sus cambios, haga lo siguiente:

  1. Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento deletion_protection en false .
    deletion_protection =  "false"
  2. Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando yes en el mensaje:
    terraform apply
  1. Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando yes en el mensaje:

    terraform destroy

REST versión 1

Para crear un usuario, utilice una solicitud POST con el método users:insert .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La contraseña del usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

REST v1beta4

Para crear un usuario, utilice una solicitud POST con el método users:insert .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La contraseña del usuario

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A los usuarios creados en instancias que utilizan MySQL 8.0 o posterior y el método de autenticación de Cloud SQL se les otorga automáticamente el rol cloudsqlsuperuser y tienen los siguientes privilegios asociados con este rol: CREATEROLE , CREATEDB y LOGIN .

A los usuarios creados en instancias con MySQL 5.7 y el método de autenticación de Cloud SQL se les otorgan automáticamente todos los privilegios, excepto FILE y SUPER . Si necesita cambiar los privilegios de estos usuarios, utilice el comando GRANT o REVOKE en el cliente mysql .

Para obtener más información sobre estas cuentas de usuario y privilegios, consulte Otras cuentas de usuario de MySQL .

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para MySQL local: 32 caracteres para MySQL 8.0 y versiones posteriores, 16 caracteres para versiones anteriores.

Cuando crea un usuario, puede agregar parámetros de política de contraseña de usuario .

Cliente MySQL

  1. Para crear un usuario, en el indicador mysql , utilice la siguiente instrucción CREATE USER :
      CREATE USER 'USER_NAME'@'%'
         IDENTIFIED BY 'PASSWORD';
      

    Opcionalmente, agregue los parámetros de la política de contraseña del usuario .

  2. Puede confirmar la creación del usuario mostrando la tabla de usuarios:
    SELECT user, host FROM mysql.user;
    Para una instancia de segunda generación, la salida se parece a este ejemplo:
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | root     | %         |
    | newuser  | %         |
    +----------+-----------+
    1 row in set (0.01 sec)
    
  3. Otorgue privilegios al usuario con la sentencia GRANT . Para más información, consulte Privilegios proporcionados por MySQL .
  4. Vacíe la tabla mysql.user para garantizar que el cambio persista:
      FLUSH TABLES mysql.user;

Establecer una política de contraseñas de usuario

Puede establecer una política de contraseñas con el tipo de autenticación incorporado.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario cuya política desea cambiar.
  5. Seleccione Editar política de contraseñas .
  6. En la sección Política de contraseña , seleccione una o más de las siguientes opciones:
    • Establecer que la contraseña caduque : especifica el número de días después de los cuales la contraseña caducará y el usuario deberá crear una nueva.
    • Bloquear después de intentos fallidos : especifica la cantidad de veces que un usuario puede intentar ingresar la contraseña incorrectamente antes de que se bloquee la cuenta.

      Compatible solo con Cloud SQL para MySQL 8.0 y versiones posteriores.

    • Requerir contraseña actual cuando se cambia la contraseña : requiere que los usuarios ingresen su contraseña existente cuando intenten cambiarla.

nube g

Para establecer la política de contraseña de usuario, utilice el comando gcloud sql users set-password-policy .

Utilice --password-policy-enable-password-verification para que sea obligatorio que los usuarios introduzcan su contraseña actual al intentar cambiarla. Para desactivar este parámetro, utilice --no-password-policy-enable-password-verification .

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • INSTANCE_NAME : El nombre de la instancia.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS : Opcional: El número de veces que un usuario puede intentar la contraseña incorrectamente antes de que se bloquee la cuenta. Use --password-policy-enable-failed-attempts-check para habilitar la verificación y --no-password-policy-enable-failed-attempts-check para deshabilitarla.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION : Opcional: especifica el número de días después de los cuales la contraseña caduca y el usuario debe crear una nueva.
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--password-policy-enable-failed-attempts-check \
--password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \
--password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION \
--password-policy-enable-password-verification

Para eliminar una política de contraseña de usuario, utilice el parámetro --clear-password-policy .

gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

REST versión 1

Para establecer una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario
  • FAILED_ATTEMPTS_CHECK : configúrelo como true para habilitar una verificación de la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS : la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION : el número de días después de los cuales la contraseña expira y el usuario necesita crear una nueva
  • VERIFY_PASSWORD : configúrelo como true para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

REST v1beta4

Para establecer una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario
  • FAILED_ATTEMPTS_CHECK : configúrelo como true para habilitar una verificación de la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • NUMBER_OF_ATTEMPTS : la cantidad de intentos fallidos de inicio de sesión después de los cuales se bloquea la cuenta
  • PASSWORD_EXPIRATION_DURATION : el número de días después de los cuales la contraseña expira y el usuario necesita crear una nueva
  • VERIFY_PASSWORD : configúrelo como true para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION",
        "enablePasswordVerification" : "VERIFY_PASSWORD"
      }
    },
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

Cliente MySQL

Para establecer una política de contraseña de usuario, en el indicador mysql , utilice la siguiente declaración ALTER USER :

ALTER USER USER_NAME
    FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS
    PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY
    PASSWORD REQUIRE CURRENT;

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • ALLOWED_FAILED_ATTEMPTS : Opcional: la cantidad de veces que un usuario puede intentar ingresar la contraseña incorrectamente antes de que se bloquee la cuenta.
  • PASSWORD_EXPIRATION_DURATION : Opcional: especifica el número de días después de los cuales la contraseña caduca y el usuario debe crear una nueva.

Utilice la opción PASSWORD REQUIRE CURRENT para que sea obligatorio que los usuarios ingresen su contraseña existente cuando intenten cambiar la contraseña.

Para ver la política de contraseñas de usuario, consulte Listar usuarios .

Lista de usuarios

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.

    La lista muestra el User name , Host name y el tipo Authentication para cada usuario.

    Además, para el tipo de autenticación incorporada, también se indica el Password status .

nube g

Utilice el comando gcloud sql users list para enumerar los usuarios de esta instancia:

gcloud sql users list \
--instance=INSTANCE_NAME

El comando devuelve el Name , Host y Type de autenticación de cada usuario.

Además, para el tipo de autenticación integrada, se devuelven la configuración y el estado de la política de contraseñas. Por ejemplo:

    NAME    HOST    TYPE        PASSWORD_POLICY
    user1           BUILT_IN    {'allowedFailedAttempts': 2,
                                 'enableFailedAttemptsCheck': True,
                                 'passwordExpirationDuration': '7d',
                                 'status': {
                                   'locked': True,
                                   'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
                                 }
                                }
   

REST versión 1

Para enumerar los usuarios definidos para una instancia, utilice una solicitud GET con el método users:list .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario , la sección items de la respuesta incluye una sección passwordPolicy . El siguiente ejemplo de código muestra la sección passwordPolicy .

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

REST v1beta4

Para enumerar los usuarios definidos para una instancia, utilice una solicitud GET con el método users:list .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Si se estableció una política de contraseñas de usuario , la sección items de la respuesta incluye una sección passwordPolicy . El siguiente ejemplo de código muestra la sección passwordPolicy .

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d",
      "enablePasswordVerification" : true
    }
  },
  ...
}
  

Cliente MySQL

Para enumerar los usuarios de MySQL, en el indicador mysql , utilice la siguiente declaración SELECT :

SELECT user, host FROM mysql.user;

Para una instancia de segunda generación con solo la cuenta de usuario root configurada, el resultado se parece a este ejemplo:

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

Este ejemplo muestra los usuarios de una instancia con el usuario root . Este usuario puede conectarse desde cualquier host ( % ). El campo de contraseña muestra el hash de la contraseña.

Cambiar una contraseña de usuario

Las contraseñas de usuario se pueden cambiar de una de las siguientes maneras.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario que desea actualizar.
  5. Seleccione Cambiar contraseña .
  6. Especifique una nueva contraseña.

    Además, si desea seguir usando su contraseña anterior, seleccione la casilla de verificación Conservar contraseña actual .

  7. Haga clic en Aceptar .

nube g

Utilice el comando gcloud sql users set-password para cambiar una contraseña.

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
  • PASSWORD : Una contraseña. Debe cumplir con los requisitos de las políticas de contraseñas, si están establecidas.

Opcionalmente, para MySQL 8.0 y versiones posteriores, puede seguir permitiendo que el usuario use la contraseña anterior con la opción --retain-password . Para descartar la contraseña anterior, utilice la opción --discard-dual-password .

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

REST versión 1

Para cambiar una contraseña de usuario, utilice una solicitud PUT con el método users:update .

La siguiente solicitud actualiza la contraseña de la cuenta de usuario user_name'@'% . Si su usuario tiene un host diferente, debe modificar la llamada con el host correcto.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La nueva contraseña para el usuario
  • dual-password : Uno de estos valores de enumeración:
    • DUAL_PASSWORD : El usuario puede continuar usando la contraseña anterior.
    • NO_DUAL_PASSWORD : El usuario no puede utilizar la contraseña anterior.
    • NO_MODIFY_DUAL_PASSWORD : El estado de la contraseña dual permanece sin cambios.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Para cambiar una contraseña de usuario, utilice una solicitud PUT con el método users:update .

La siguiente solicitud actualiza la contraseña de la cuenta de usuario user_name'@'% . Si su usuario tiene un host diferente, debe modificar la llamada con el host correcto.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • project-id : Su ID de proyecto
  • instance-id : El ID de instancia deseado
  • user-id : El ID del usuario
  • password : La nueva contraseña para el usuario
  • dual-password : Uno de estos valores de enumeración:
    • DUAL_PASSWORD : El usuario puede continuar usando la contraseña anterior.
    • NO_DUAL_PASSWORD : El usuario no puede utilizar la contraseña anterior.
    • NO_MODIFY_DUAL_PASSWORD : El estado de la contraseña dual permanece sin cambios.

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Cuerpo JSON de la solicitud:

{
  "name": "user-id",
  "password": "password",
  "retainedPassword" : "dual-password"
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Cliente MySQL

  1. Para cambiar la contraseña, en el indicador mysql , utilice la siguiente instrucción SET PASSWORD :
    SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
  2. Vacíe la tabla mysql.user para garantizar que el cambio persista:
    FLUSH TABLES mysql.user;

Si un usuario queda bloqueado debido a la configuración de la política de contraseñas, cámbiela para desbloquearlo. Asegúrese de que, al cambiarlas, las contraseñas cumplan con la política de contraseñas.

Eliminar una política de contraseña de usuario

Puede eliminar una política de contraseña de un usuario que tenga el tipo de autenticación incorporado.

nube g

Para eliminar la política de contraseña de usuario, utilice el comando gcloud sql users set-password-policy y el parámetro --clear-password-policy .

Reemplace lo siguiente:

  • USER_NAME : el nombre de usuario
  • INSTANCE_NAME : el nombre de la instancia
  • HOST : el nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % )
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST versión 1

Para eliminar una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

REST v1beta4

Para eliminar una política de contraseña de usuario, utilice una solicitud PUT con el método users:update .

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : su ID de proyecto
  • INSTANCE_ID : el ID de la instancia
  • USER_ID : el ID del usuario
  • PASSWORD : la contraseña del usuario

Método HTTP y URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Cuerpo JSON de la solicitud:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

Eliminar un usuario

El usuario predeterminado puede eliminar usuarios.

Antes de eliminar un usuario, debe eliminar todos los objetos que posee o reasignar su propiedad y revocar cualquier privilegio que se le haya otorgado al rol sobre otros objetos.

Consola

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Seleccione Usuarios en el menú de navegación de SQL.
  4. Haga clic en más acciones Icono de más acciones. para el usuario que desea eliminar.
  5. Seleccione Eliminar y luego seleccione Eliminar nuevamente.

nube g

Utilice el comando gcloud sql users delete para eliminar un usuario.

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • HOST : El nombre de host del usuario como una dirección IP específica, un rango de direcciones o cualquier host ( % ).
  • INSTANCE_NAME : El nombre de la instancia.
gcloud sql users delete USER_NAME \
--host=HOST \
--instance=INSTANCE_NAME

REST versión 1

La siguiente solicitud utiliza el método users:delete para eliminar la cuenta de usuario especificada.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : Su ID de proyecto
  • INSTANCE_ID : El ID de instancia deseado
  • USERNAME : La dirección de correo electrónico del usuario o cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

La siguiente solicitud utiliza el método users:delete para eliminar la cuenta de usuario especificada.

Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:

  • PROJECT_ID : Su ID de proyecto
  • INSTANCE_ID : El ID de instancia deseado
  • USERNAME : La dirección de correo electrónico del usuario o cuenta de servicio

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Para enviar su solicitud, expanda una de estas opciones:

Debería recibir una respuesta JSON similar a la siguiente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "[email protected]",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cliente MySQL

  1. Para eliminar un usuario, en el indicador mysql , utilice la siguiente instrucción DROP USER :
    DROP USER 'USER_NAME'@'HOST_NAME';
  2. Vacíe la tabla mysql.user para garantizar que el cambio persista:
    FLUSH TABLES mysql.user;

Actualizar las propiedades del usuario

Para actualizar las propiedades del usuario, como el host o los privilegios, debe usar el cliente mysql . Para más información, consulte "Administración de cuentas de usuario de MySQL" en la documentación de MySQL.

¿Qué sigue?