Questa pagina descrive come utilizzare il client sqlcmd, installato su un'istanza Compute Engine, per connettersi a Cloud SQL.
Puoi utilizzare l'IP privato, l'IP pubblico, il proxy di autenticazione Cloud SQL o l'immagine Docker del proxy di autenticazione Cloud SQL.
Per istruzioni passo passo sull'esecuzione di un'applicazione web di esempio di Compute Engine connessa a Cloud SQL, consulta la guida rapida per la connessione da Compute Engine.
Prima di iniziare
Questa attività non include istruzioni per la configurazione dell'istanza Compute Engine. Se hai bisogno di aiuto per creare e configurare un'istanza Compute Engine, consulta la documentazione di Compute Engine.
IP privato
Per connetterti a Cloud SQL da un'istanza Compute Engine utilizzando l'IP privato, devi configurare l'accesso privato ai servizi per il tuo ambiente e la tua istanza Cloud SQL deve essere configurata per utilizzare l'IP privato. L'istanza Compute Engine deve trovarsi nella stessa regione dell'istanza Cloud SQL e nella rete configurata per una connessione privata. Scopri di più.
1. Configura l'istanza per l'utilizzo dell'IP privato
Segui le istruzioni riportate in Configurazione della connettività IP privato.
2. Apri una connessione del terminale Cloud Shell alla tua istanza di Compute Engine.
Utilizza le istruzioni appropriate, a seconda del sistema operativo dell'istanza:
- Per Linux, consulta Connessione alle VM Linux.
- Per Windows, consulta Connessione alle VM Windows.
Se l'istanza Compute Engine esegue un'immagine pubblica RHEL o CentOS, SELinux potrebbe bloccare la connessione proxy. In questo caso, devi configurare la funzionalità SELinux per consentire la connessione.
Per ulteriori informazioni su SELinux per RHEL, consulta la documentazione di RHEL. Per saperne di più su SELinux per CentOS, consulta la documentazione di CentOS.
3. Installa il client sqlcmd sull'istanza Compute Engine, se non è già installato.
Debian/Ubuntu
Per Debian/Ubuntu, installa gli strumenti a riga di comando di SQL Server applicabili.
CentOS/RHEL
Per CentOS/RHEL, installa gli strumenti a riga di comando SQL Server applicabili.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando di SQL Server applicabili.
Altre piattaforme
Consulta la pagina di destinazione per l'installazione di SQL Server, nonché la pagina di download di SQL Server.
4. Connettiti con il client sqlcmd.
sqlcmd -S CLOUD_SQL_PRIVATE_IP_ADDRESS -U USERNAME
Puoi trovare l'indirizzo IP privato nella pagina delle istanze Cloud SQL o eseguendo il seguente comando gcloud:
gcloud sql instances list
IP pubblico
Per connetterti utilizzando l'IP pubblico:
1. Aggiungi un indirizzo IP IPv4 statico all'istanza Compute Engine, se non ne ha già uno.
Non puoi connetterti a Compute Engine utilizzando IPv6. Per informazioni sull'aggiunta di un indirizzo IP statico, consulta Prenotazione di un nuovo indirizzo IP esterno statico nella documentazione di Compute Engine.
2. Autorizza l'indirizzo IP statico dell'istanza Compute Engine come rete che può connettersi alla tua istanza Cloud SQL.
Per saperne di più, consulta Configura l'accesso per le connessioni IP pubbliche.
3. Apri una connessione del terminale Cloud Shell alla tua istanza di Compute Engine.
Utilizza le istruzioni appropriate, a seconda del sistema operativo dell'istanza:
- Per Linux, vedi Connessione alle VM Linux.
- Per Windows, vedi Connessione alle VM Windows.
Se l'istanza Compute Engine esegue un'immagine pubblica RHEL o CentOS, SELinux potrebbe bloccare la connessione proxy. In questo caso, devi configurare la funzionalità SELinux per consentire la connessione.
Per saperne di più su SELinux per RHEL, consulta la documentazione di RHEL. Per saperne di più su SELinux per CentOS, consulta la documentazione di CentOS.
4. Installa il client sqlcmd nell'istanza Compute Engine, se non è già installato.
Debian/Ubuntu
Per Debian/Ubuntu, installa gli strumenti a riga di comando di SQL Server applicabili.
CentOS/RHEL
Per CentOS/RHEL, installa gli strumenti a riga di comando SQL Server applicabili.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando di SQL Server applicabili.
Altre piattaforme
Consulta la pagina di destinazione per l'installazione di SQL Server, nonché la pagina di download di SQL Server.
5. Connettiti al client sqlcmd.
sqlcmd -S CLOUD_SQL_PUBLIC_IP_ADDR -U USERNAME
Puoi trovare l'indirizzo IP pubblico nella pagina delle istanze Cloud SQL o eseguendo il seguente comando gcloud:
gcloud sql instances list
Per un esempio di come connetterti utilizzando SSL, consulta Connessione con SSL.
6. Viene visualizzato il prompt sqlcmd.
Cloud SQL Auth Proxy
Per connetterti utilizzando il Cloud SQL Auth Proxy da Compute Engine:1. Abilita l'API Cloud SQL Admin.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin).
Scopri come concedere i ruoli.
2. Creare un service account.
- Nella Google Cloud console, vai alla pagina Service account.
- Seleziona il progetto che contiene l'istanza Cloud SQL.
- Fai clic su Crea service account.
- Nel campo Nome service account, inserisci un nome descrittivo per il account di servizio.
- Modifica l'ID service account in un valore univoco e riconoscibile, quindi fai clic su Crea e continua.
-
Fai clic sul campo Seleziona un ruolo e seleziona uno dei seguenti ruoli:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL Editor
- Cloud SQL > Cloud SQL Admin
- Fai clic su Fine per completare la creazione del service account.
- Fai clic sul menu Azioni per il nuovo account di servizio e seleziona Gestisci chiavi.
- Fai clic sul menu a discesa Aggiungi chiave, quindi seleziona Crea nuova chiave.
-
Verifica che il tipo di chiave sia JSON, poi fai clic su Crea.
Il file della chiave privata viene scaricato sul computer. Puoi spostarlo in un'altra posizione. Mantieni al sicuro il file della chiave.
Se l'istanza Compute Engine si trova in un progetto diverso dall'istanza Cloud SQL, assicurati che il account di servizio disponga delle autorizzazioni appropriate nel progetto che contiene l'istanza Cloud SQL:
- Vai all'elenco delle istanze Compute Engine nella console Google Cloud .
- Se necessario, seleziona il progetto associato all'istanza di Compute Engine.
- Seleziona l'istanza Compute Engine per visualizzarne le proprietà.
- Nelle proprietà dell'istanza Compute Engine, copia il nome del account di servizio.
- Vai alla pagina IAM e amministrazione > Progetti nella console Google Cloud .
- Seleziona il progetto che contiene l'istanza di Cloud SQL.
- Cerca il nome del account di servizio.
-
Se il account di servizio è già presente e ha un ruolo che include l'autorizzazione
cloudsql.instances.connect, puoi procedere al passaggio 4.I ruoli
Cloud SQL Client,Cloud SQL EditoreCloud SQL Adminforniscono tutti l'autorizzazione necessaria, così come i ruoli di progetto legacyEditoreOwner. - In caso contrario, aggiungi il account di servizio facendo clic su Aggiungi.
Nella finestra di dialogo Aggiungi entità, fornisci il nome del account di servizio e seleziona un ruolo che includa l'autorizzazione
cloudsql.instances.connect(qualsiasi ruolo predefinito di Cloud SQL diverso da Visualizzatore funzionerà).In alternativa, puoi utilizzare il ruolo Editor di base selezionando Progetto > Editor, ma il ruolo Editor include autorizzazioni per Google Cloud.
Se non vedi questi ruoli, il tuo utente Google Cloud potrebbe non disporre dell'autorizzazione
resourcemanager.projects.setIamPolicy. Puoi controllare le tue autorizzazioni andando alla pagina IAM nella console Google Cloud e cercando il tuo ID utente.- Fai clic su Aggiungi.
Ora vedrai il account di servizio elencato con il ruolo specificato.
3. Apri una connessione terminale all'istanza Compute Engine.
Utilizza le istruzioni appropriate, a seconda del sistema operativo dell'istanza:
- Per Linux, consulta Connessione alle istanze Linux.
- Per Windows, consulta Connessione alle istanze Windows.
Se l'istanza Compute Engine esegue un'immagine pubblica RHEL o CentOS, SELinux potrebbe bloccare la connessione proxy. In questo caso, devi configurare la funzionalità SELinux per consentire la connessione.
Per ulteriori informazioni su SELinux per RHEL, consulta la documentazione di RHEL. Per ulteriori informazioni su SELinux per CentOS, consulta la documentazione di CentOS.
4. Installa il client sqlcmd sull'istanza Compute Engine, se non è già installato.
Debian/Ubuntu
Per Debian/Ubuntu, installa gli strumenti a riga di comando di SQL Server applicabili.
CentOS/RHEL
Per CentOS/RHEL, installa gli strumenti a riga di comando di SQL Server applicabili.
openSUSE
Per openSUSE, installa gli strumenti a riga di comando di SQL Server applicabili.
Altre piattaforme
Consulta la pagina di destinazione per l'installazione di SQL Server, nonché la pagina dei download di SQL Server.
5. Installa il Cloud SQL Auth Proxy sull'istanza Compute Engine.
Prima di iniziare, devi determinare l'architettura della tua macchina.
Se esegui Linux o Mac, puoi trovarlo eseguendo questo comando:
uname -a
Linux a 64 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.amd64
- Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Linux a 32 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.386
- Se il comando
curlnon viene trovato, eseguisudo apt install curle ripeti il comando di download. - Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Windows a 64 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x64.exe e seleziona Salva link con nome per scaricare il Cloud SQL Auth Proxy. Rinomina il file incloud-sql-proxy.exe.
Windows a 32 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x86.exe e seleziona Salva link con nome per scaricare il Cloud SQL Auth Proxy. Rinomina il file incloud-sql-proxy.exe.
Immagine Docker di Cloud SQL Auth Proxy
Il proxy di autenticazione Cloud SQL ha diverse immagini container, come distroless, alpine e buster. L'immagine container del proxy di autenticazione Cloud SQL predefinita utilizza
distroless, che
non contiene alcuna shell. Se hai bisogno di una shell o di strumenti correlati, scarica un'immagine basata su
alpine o buster.
Per maggiori informazioni, vedi
Immagini container del Cloud SQL Auth Proxy.
Puoi eseguire il pull dell'immagine più recente sulla tua macchina locale utilizzando Docker con il seguente comando:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
Altri sistemi operativi
Per altri sistemi operativi non inclusi qui, puoi compilare il Cloud SQL Auth Proxy dal codice sorgente.6. Avvia il proxy di autenticazione Cloud SQL.
Puoi avviare il proxy di autenticazione Cloud SQL utilizzando i socket TCP o l'immagine Docker del proxy di autenticazione Cloud SQL. Il programma binario Cloud SQL Auth Proxy si connette a una o più istanze Cloud SQL specificate nella riga di comando e apre una connessione locale come socket TCP. Altre applicazioni e servizi, come il codice dell'applicazione o gli strumenti client di gestione di database, possono connettersi alle istanze Cloud SQL tramite la connessione socket TCP.
Socket TCP
Per le connessioni TCP, il proxy di autenticazione Cloud SQL rimane in ascolto su localhost(127.0.0.1) per impostazione predefinita.
Quindi, quando specifichi --port PORT_NUMBER per un'istanza, la connessione locale è 127.0.0.1:PORT_NUMBER.
In alternativa, puoi specificare un indirizzo diverso per la connessione locale.
Ad esempio, ecco come fare in modo che il Cloud SQL Auth Proxy rimanga in ascolto su 0.0.0.0:1234 per la connessione locale:
./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
Copia il tuo INSTANCE_CONNECTION_NAME. Puoi trovarlo nella pagina Panoramica dell'istanza nella consoleGoogle Cloud o eseguendo il seguente comando:
gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'
Ad esempio: myproject:myregion:myinstance.
- Se per l'istanza sono configurati sia l'IP pubblico che quello privato e vuoi che il proxy di autenticazione Cloud SQL utilizzi l'indirizzo IP privato, devi fornire la seguente opzione quando avvii il proxy di autenticazione Cloud SQL:
--private-ip
- Se utilizzi un account di servizio per autenticare il proxy di autenticazione Cloud SQL, annota la posizione sul computer client del file della chiave privata creato quando hai creato il account di servizio.
- Avvia il proxy di autenticazione Cloud SQL.
Alcune possibili stringhe di chiamata del proxy di autenticazione Cloud SQL:
- Utilizzo dell'autenticazione Cloud SDK:
La porta specificata non deve essere già in uso, ad esempio da un server di database locale../cloud-sql-proxy --port 1433 INSTANCE_CONNECTION_NAME
- Utilizzando un account di servizio e includendo esplicitamente il nome della connessione all'istanza (consigliato per gli ambienti di produzione):
./cloud-sql-proxy \ --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &
Per saperne di più sulle opzioni di Cloud SQL Auth Proxy, consulta Opzioni per l'autenticazione di Cloud SQL Auth Proxy.
- Utilizzo dell'autenticazione Cloud SDK:
Docker
Per eseguire il proxy di autenticazione Cloud SQL in un container Docker, utilizza l'immagine Docker del proxy di autenticazione Cloud SQL disponibile in Google Container Registry.
Puoi avviare il proxy di autenticazione Cloud SQL utilizzando i socket TCP con il comando riportato di seguito. Questa opzione utilizza un INSTANCE_CONNECTION_NAME come stringa di connessione per identificare un'istanza Cloud SQL. Puoi trovare INSTANCE_CONNECTION_NAME nella pagina Panoramica della tua istanza nella consoleGoogle Cloud o eseguendo il seguente comando:
gcloud sql instances describe INSTANCE_NAME
Ad esempio: myproject:myregion:myinstance.
Utilizzo dei socket 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.26.2 \ --address 0.0.0.0 --port 1433 \ --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME
Se utilizzi le credenziali fornite dall'istanza Compute Engine, non includere il parametro --credentials-file e la riga -v PATH_TO_KEY_FILE:/path/to/service-account-key.json.
Specifica sempre il prefisso 127.0.0.1 in -p in modo che
il Cloud SQL Auth Proxy non sia esposto al di fuori dell'host locale. Il flag --address 0.0.0.0 è obbligatorio per rendere la porta accessibile dall'esterno del container Docker.
7. Avvia la sessione sqlcmd.
La stringa di connessione che utilizzi dipende dal fatto che tu abbia avviato il Cloud SQL Auth Proxy utilizzando un socket TCP o Docker.
Socket TCP
- Avvia il client sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Quando ti connetti utilizzando i socket TCP, l'accesso al proxy di autenticazione Cloud SQL avviene tramite
127.0.0.1. - Se richiesto, inserisci la password.
- Viene visualizzato il prompt sqlcmd.
Serve aiuto? Per assistenza nella risoluzione dei problemi del proxy, consulta Risoluzione dei problemi delle connessioni del proxy di autenticazione Cloud SQL o visita la nostra pagina di assistenza di Cloud SQL.
Passaggi successivi
- Ricevi assistenza per la risoluzione dei problemi di connessione per il Cloud SQL Auth Proxy.
- Crea utenti e database.
- Scopri di più sull'IP privato.
- Scopri le opzioni per connetterti all'istanza dalla tua applicazione.
- Scopri di più sulle opzioni di assistenza.