Crear y administrar usuarios,Crear y administrar usuarios

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

Para obtener información adicional sobre los usuarios que crea utilizando Cloud SQL, consulte Otros usuarios de SQL Server .

Antes de crear usuarios

  1. Cree una instancia de Cloud SQL. Para obtener más información, consulte Crear instancias .
  2. Si planea usar el cliente administrativo de su base de datos para administrar usuarios, configure el usuario predeterminado en la instancia mediante 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 SQL Server, el usuario predeterminado es sqlserver .

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 sqlserver y seleccione Cambiar contraseña en el menú de más acciones Icono de más acciones. .
  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 sqlserver \
--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
  • user-id : El ID del usuario
  • 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=user-id

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: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
  • 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"
}

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 .
  5. En la página Agregar una cuenta de usuario a la instancia instance_name , agregue la siguiente información:
    • Un nombre de usuario .
    • Una contraseña (opcional).
  6. Haga clic en Agregar .

nube g

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

Reemplace lo siguiente:

  • USER_NAME : El nombre del usuario.
  • INSTANCE_NAME : El nombre de la instancia.
  • PASSWORD : La contraseña del usuario.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para SQL Server local.

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"
}

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para SQL Server local.

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"
}

Los límites de longitud del nombre de usuario son los mismos para Cloud SQL que para SQL Server local.

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.

nube g

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

gcloud sql users list \
--instance=INSTANCE_NAME

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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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.
  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.
  • INSTANCE_NAME : El nombre de la instancia.
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-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 .

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

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"
}

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 .

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

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"
}

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"
}

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.
  • INSTANCE_NAME : El nombre de la instancia.
gcloud sql users delete USER_NAME \
--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"
}

Actualizar las propiedades del usuario

Para obtener información relacionada con los roles de nivel de base de datos en SQL Server, consulte Trabajar con roles de nivel de base de datos en la documentación de SQL Server.

¿Qué sigue?