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
- Cree una instancia de Cloud SQL. Para obtener más información, consulte Crear instancias .
- 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 essqlserver
. Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Seleccione Usuarios en el menú de navegación de SQL.
- Busque el usuario
sqlserver
y seleccione Cambiar contraseña en el menú de más acciones.
- 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
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Seleccione Usuarios en el menú de navegación de SQL.
- Haga clic en Agregar cuenta de usuario .
- 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).
- 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 .
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
- Inicie Cloud Shell .
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 ).
- 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 denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
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.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- 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
- 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.
- 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!"
- 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:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
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
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- 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
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Seleccione Usuarios en el menú de navegación de SQL.
- Haga clic en más acciones
para el usuario que desea actualizar.
- Seleccione Cambiar contraseña .
- Especifique una nueva contraseña.
- 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
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- Seleccione Usuarios en el menú de navegación de SQL.
- Haga clic en más acciones
para el usuario que desea eliminar.
- 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?
- Obtenga más información sobre cómo funciona Cloud SQL con los usuarios .