En esta página, se describe cómo conectar un cliente sqlcmd a tu instancia de Cloud SQL desde una máquina cliente que se ejecuta en una instancia de Linux o de Compute Engine Linux con la imagen de Docker del proxy de autenticación de Cloud SQL.
Antes de comenzar
Debes haber:
- Instalado la gcloud CLI Obtén más información.
- Autorizado la gcloud CLI. Más información.
- Establece el proyecto predeterminado para gcloud CLI. Más información.
- Configurado un usuario de base de datos en tu instancia de Cloud SQL. Obtén más información.
Roles obligatorios
Para obtener los permisos que necesitas para conectarte a una instancia de Cloud SQL con la imagen de Docker del proxy de autenticación de Cloud SQL, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Para conectarte con el proxy de autenticación de Cloud SQL:
Cliente de Cloud SQL (
roles/cloudsql.client) -
Si usas la autenticación de la base de datos de IAM:
Usuario de instancia de Cloud SQL (
roles/cloudsql.instanceUser)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Conecta un cliente sqlcmd con la imagen de Docker del proxy de autenticación de Cloud SQL
Para conectarlo con la imagen de Docker del proxy de autenticación de Cloud SQL, haz lo siguiente:
Habilita la API de Cloud SQL Admin si aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.- Si usas una instancia de Compute Engine, prepárala de la siguiente manera:
- Muestra las propiedades de la instancia de Compute Engine:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Verifica la cuenta de servicio
y los permisos de acceso configurados en la instancia:
- Asegúrate de que la cuenta de servicio conectada a la VM tenga el rol predefinido de Identity and Access Management (IAM) de Cliente de Cloud SQL (
roles/cloudsql.client) para conectarse con el proxy de autenticación de Cloud SQL o la API de Cloud SQL Admin. Si usas la autenticación de la base de datos de IAM, también otorga el rol de usuario de instancia de Cloud SQL (roles/cloudsql.instanceUser). Para obtener más información sobre los roles predefinidos, consulta Roles requeridos. - Asegúrate de que el permiso de acceso de la VM esté configurado como
cloud-platform(https://www.googleapis.com/auth/cloud-platformo Permitir el acceso total a todas las APIs de Cloud en la consola de Google Cloud ). Los permisos de acceso son un método heredado para especificar la autorización de una VM y solo establecen el permiso de autorización de OAuth máximo para las solicitudes. Administra el control de acceso a través de roles de IAM predefinidos en lugar de permisos de acceso.
Si tu instancia de Compute Engine no tiene los roles de cuenta de servicio o el permiso de acceso necesarios, puedes actualizarla. Para obtener más información sobre cómo cambiar la cuenta de servicio y los permisos de acceso en una VM, consulta Cambia la cuenta de servicio conectada en la documentación de Compute Engine.
- Asegúrate de que la cuenta de servicio conectada a la VM tenga el rol predefinido de Identity and Access Management (IAM) de Cliente de Cloud SQL (
- Abre una conexión de terminal a la instancia con las instrucciones que aparecen en Conéctate a instancias de Linux.
- Muestra las propiedades de la instancia de Compute Engine:
- Si todavía no está instalado, instala el cliente sqlcms en la instancia de Compute Engine o en la máquina cliente.
Debian/Ubuntu
Para Debian/Ubuntu, instala las herramientas de línea de comandos de SQL Server aplicables.
CentOS/RHEL
Para CentOS/RHEL, instala las herramientas de línea de comandos de SQL Server aplicables.
openSUSE
Para openSUSE, instala las herramientas de línea de comandos de SQL Server aplicables.
Otras plataformas
Consulta la página de destino para instalar SQL Server, así como la página de descargas de SQL Server.
- Si es necesario, instala el cliente Docker:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
Si usas una instancia de Compute Engine con container-optimized, esta ya tiene instalado el cliente Docker.
-
Instala la imagen de Docker del proxy de autenticación de Cloud SQL desde
Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
- Si ejecutas la imagen de Docker del proxy de autenticación de Cloud SQL en una máquina local (no una
instancia de Compute Engine) o si la cuenta de servicio conectada a tu
instancia de Compute Engine no tiene los roles de IAM y
el permiso de acceso necesarios, crea una cuenta de servicio de Google Cloud .
- En la consola de Google Cloud , ve a la página Cuentas de servicio.
- Selecciona el proyecto que contiene la instancia de Cloud SQL.
- Haga clic en Crear cuenta de servicio.
- En el campo Nombre de la cuenta de servicio, ingresa un nombre descriptivo para la cuenta de servicio.
- Cambia el ID de la cuenta de servicio a un valor único y reconocible y, luego, haz clic en Crear y continuar.
-
Haz clic en el campo Seleccionar un rol y selecciona uno de los siguientes roles:
- Cloud SQL > Cliente de Cloud SQL
- Cloud SQL > Editor de Cloud SQL
- Cloud SQL > Administrador de Cloud SQL
- Haz clic en Listo para terminar de crear la cuenta de servicio.
- Haz clic en el menú de acciones de tu nueva cuenta de servicio y, luego, selecciona Administrar claves.
- Haz clic en el menú desplegable Agregar clave y, luego, en Crear clave nueva.
-
Confirma que el tipo de clave sea JSON y, luego, haz clic en Crear.
El archivo de claves privadas se descargará en tu equipo. Puedes moverlo a otra ubicación. Protege el archivo de claves.
Cuando inicias el proxy de autenticación de Cloud SQL, debes proporcionar la ruta al archivo de claves como "PATH_TO_KEY_FILE".
- Ve a la página Instancias de Cloud SQL en la consola de Google Cloud .
-
Selecciona la instancia para abrir la página Detalles de la instancia y copia el nombre de la conexión de la instancia.
Por ejemplo:
myproject:us-central1:myinstance. -
Inicia el proxy de autenticación de Cloud SQL.
Sockets TCP
docker run -d
-v PATH_TO_KEY_FILE:/path/to/service-account-key.json
-p 127.0.0.1:1433:1433
gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
--address 0.0.0.0 --port 1433
--credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAMESi usas las credenciales que proporciona tu instancia de Compute Engine, no incluyas el parámetro
--credentials-fileni la línea-v PATH_TO_KEY_FILE:/path/to/service-account-key.json.Especifica siempre el prefijo
127.0.0.1en-ppara que el proxy de autenticación de Cloud SQL no se exponga fuera del host local. La marca--address 0.0.0.0es necesaria para que se pueda acceder al puerto desde afuera del contenedor de Docker. - Inicia el cliente:
La cadena de conexión que usas depende de si iniciaste el proxy de autenticación de Cloud SQL con un socket TCP o Docker.
Sockets TCP
- Inicia el cliente sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Cuando te conectas con los sockets de TCP, se accede al proxy de autenticación de Cloud SQL a través de
127.0.0.1. - Si se te solicita, ingresa la contraseña.
- Se mostrará el mensaje de sqlcmd.
- Inicia el cliente sqlcmd:
Mantén actualizada la imagen de Docker del proxy de autenticación de Cloud SQL
La imagen de Docker del proxy de autenticación de Cloud SQL se basa en una versión específica del proxy de autenticación de Cloud SQL. Cuando esté disponible una versión nueva del proxy de autenticación de Cloud SQL, extrae la versión nueva de la imagen de Docker del proxy de autenticación de Cloud SQL para mantener actualizado el entorno. Para ver la versión actual del proxy de autenticación de Cloud SQL, consulta la página de versiones de GitHub del proxy de autenticación de Cloud SQL.
¿Qué sigue?
- Obtén más información sobre el proxy de autenticación de Cloud SQL.
- Obtén ayuda para solucionar problemas de conexión del proxy de autenticación de Cloud SQL Auth.
- Crea usuarios y bases de datos.
- Obtén más información sobre las opciones para conectarte a la instancia desde tu aplicación.
- Obtén más información sobre Docker.
- Obtén más información sobre Google Container Registry.
- Obtén información sobre opciones de asistencia.