En esta página, se describe cómo habilitar y usar la autenticación integrada de Cloud SQL.
Para obtener información adicional sobre los usuarios que creas con Cloud SQL, consulta Otros usuarios de SQL Server.Antes de crear usuarios
- Crea una instancia de Cloud SQL. Para obtener más información, consulta cómo Crear instancias.
- Si planeas usar el cliente de administración de tu base de datos para administrar usuarios, configura la contraseña predeterminada en la instancia mediante la configuración de la contraseña. Consulta Establece una contraseña para la cuenta de usuario predeterminada.
Establece una contraseña para la cuenta del usuario predeterminado
Cuando creas una instancia de Cloud SQL nueva, debes establecer una contraseña para la cuenta de usuario predeterminada antes de poder conectarte a la instancia.
En Cloud SQL para SQL Server, el usuario predeterminado essqlserver
.Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
- Busca el usuario
sqlserver
y selecciona Cambiar contraseña en el menú de más acciones . - Proporciona una contraseña segura que puedas recordar y haz clic en Aceptar.
gcloud
Usa el comando gcloud sql users set-password
de la siguiente manera a fin de configurar la contraseña para el usuario predeterminado.
Reemplaza INSTANCE_NAME por el nombre de la instancia antes de ejecutar el comando.
gcloud sql users set-password sqlserver \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
Para actualizar la contraseña de la cuenta de usuario predeterminada, usa una solicitud PUT con el método users:update.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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, usa una solicitud PUT con el método users:update.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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" }
Crea un usuario
Después de configurar la cuenta de usuario predeterminada, puedes crear otros usuarios.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
- Haz clic en Agregar cuenta de usuario.
- En la página Agrega una cuenta de usuario a la instancia instance_name, agrega la siguiente información:
- Un nombre de usuario
- Una contraseña (opcional).
- Haz clic en Agregar.
gcloud
Para crear un usuario, usa el comando
gcloud sql users create
.
Reemplaza lo siguiente:
- USER_NAME: El nombre de 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 extensión del nombre de usuario son los mismos en Cloud SQL y en SQL Server local.
Terraform
Para crear un usuario, usa un recurso de Terraform.
Aplica los cambios
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus 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 configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
Para crear un usuario, usa una solicitud POST con el método users:insert.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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 extensión del nombre de usuario son los mismos en Cloud SQL y en SQL Server local.
REST v1beta4
Para crear un usuario, usa una solicitud POST con el método users:insert.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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 extensión del nombre de usuario son los mismos en Cloud SQL y en SQL Server local.
Mostrar lista de usuarios
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
gcloud
Usa el comando gcloud sql users list a fin de enumerar los usuarios para esta instancia:
gcloud sql users list \ --instance=INSTANCE_NAME
REST v1
Para enumerar los usuarios definidos de una instancia, usa una solicitud GET con el método users:list.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 de una instancia, usa una solicitud GET con el método users:list.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" ] } }, { ... }, { ... } ] }
Cambia una contraseña de usuario
Las contraseñas de usuario se pueden cambiar de una de las siguientes maneras.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
- Haz clic en el ícono de más acciones para el usuario que quieres actualizar.
- Selecciona Cambiar contraseña.
- Especifica una contraseña nueva.
- Haga clic en OK.
gcloud
Usa el comando
gcloud sql users set-password
para cambiar una contraseña.
Reemplaza lo siguiente:
- USER_NAME: El nombre de usuario
- INSTANCE_NAME: El nombre de la instancia
gcloud sql users set-password USER_NAME \ --instance=INSTANCE_NAME \ --prompt-for-password
REST v1
Para cambiar una contraseña de usuario, usa una solicitud PUT con el método users:update.
La siguiente solicitud actualiza la contraseña para la cuenta de usuario user_name
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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", "retainedPassword" : "dual-password" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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, usa una solicitud PUT con el método users:update.
La siguiente solicitud actualiza la contraseña para la cuenta de usuario user_name
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID de tu 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", "retainedPassword" : "dual-password" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "DONE", "user": "user@example.com", "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" }
Quita un usuario
El usuario predeterminado puede quitar usuarios.
Antes de quitar un usuario, debes quitarle todos los objetos que posee o reasignar su propiedad, y revocar todos los privilegios que se le hayan otorgado al rol en otros objetos.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Selecciona Usuarios en el menú de navegación de SQL.
- Haz clic en el ícono de más acciones para el usuario que quieres quitar.
- Selecciona Quitar y, luego, vuelve a seleccionar Quitar.
gcloud
Usa el comando
gcloud sql users delete
para quitar un usuario.
Reemplaza lo siguiente:
- USER_NAME: El nombre de usuario
- INSTANCE_NAME: El nombre de la instancia
gcloud sql users delete USER_NAME \ --instance=INSTANCE_NAME
REST v1
En la solicitud que se muestra a continuación, se usa el método users:delete para borrar la cuenta de usuario especificada.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- INSTANCE_ID: el ID de instancia deseado
- USERNAME: la dirección de correo electrónico del usuario o la 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "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
En la solicitud que se muestra a continuación, se usa el método users:delete para borrar la cuenta de usuario especificada.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- INSTANCE_ID: el ID de instancia deseado
- USERNAME: la dirección de correo electrónico del usuario o la 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 tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "DONE", "user": "user@example.com", "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" }
Actualiza las propiedades de usuario
Para obtener información relacionada con los roles a nivel de base de datos en SQL Server, consulta Trabaja con funciones a nivel de base de datos en la documentación de SQL Server.¿Qué sigue?
- Obtén más información sobre cómo funciona Cloud SQL con los usuarios.