Connessione del client SQL Server tramite l'immagine Docker del proxy di autenticazione Cloud SQL

Questa pagina descrive come connettere un client sqlcmd alla tua istanza Cloud SQL da un computer client che esegue un'istanza Linux Linux o Compute Engine utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL.

Prima di iniziare

Devi avere:

Connetti un client sqlcmd utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL

Per connetterti utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL:

  1. Attiva Cloud SQL Admin API.

    Abilita l'API

  2. Se utilizzi un'istanza Compute Engine, preparala:
    1. Visualizza le proprietà dell'istanza Compute Engine:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Verifica gli ambiti abilitati nell'istanza.

      L'autenticazione mediante ambiti richiede entrambi i seguenti ambiti:

      • https://www.googleapis.com/auth/sqlservice.admin
      • https://www.googleapis.com/auth/devstorage.read_write

      In alternativa, l'ambito https://www.googleapis.com/auth/cloud-platform abilita tutte le API della piattaforma Google Cloud.

      Se l'istanza di Compute Engine non dispone degli ambiti corretti, puoi aggiornare l'istanza in modo da includerli. Per saperne di più, consulta la documentazione di Compute Engine.

    3. Apri una connessione del terminale all'istanza, utilizzando le istruzioni in Connessione alle istanze Linux.
  3. Installa il client sqlcmd sull'istanza o sul computer client di Compute Engine, se non è già installato.
  4. Se necessario, installa il client Docker:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER
    

    Se utilizzi un'istanza Compute Engine ottimizzata per i container, il client Docker è già installato.

  5. Installa l'immagine Docker del proxy di autenticazione Cloud SQL da Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.0
  6. Se esegui l'immagine Docker del proxy di autenticazione Cloud SQL su una macchina locale (non un'istanza di Compute Engine) o se la tua istanza di Compute Engine non ha gli ambiti corretti, crea un account di servizio della Google Cloud Platform.
    1. Nella console Google Cloud, vai alla pagina Account di servizio.

      Vai ad Account di servizio

    2. Seleziona il progetto che contiene l'istanza Cloud SQL.
    3. Fai clic su Crea account di servizio.
    4. Nel campo Nome account di servizio, inserisci un nome descrittivo per l'account.
    5. Modifica l'ID account di servizio in un valore univoco e riconoscibile, quindi fai clic su Crea e continua.
    6. Fai clic sul campo Seleziona un ruolo e scegli uno dei seguenti ruoli:
      • Cloud SQL > Client Cloud SQL
      • Cloud SQL > Editor Cloud SQL
      • Cloud SQL > Amministratore Cloud SQL
    7. Fai clic su Fine per completare la creazione dell'account di servizio.
    8. Fai clic sul menu Azioni per il nuovo account di servizio e seleziona Gestisci chiavi.
    9. Fai clic sul menu a discesa Aggiungi chiave, quindi su Crea nuova chiave.
    10. Verifica che il tipo di chiave sia JSON e fai clic su Crea.

      Il file della chiave privata viene scaricato sul tuo computer. Puoi spostarlo in un'altra posizione. Tieni al sicuro il file della chiave.

    Il percorso del file della chiave deve essere "PATH_TO_KEY_FILE" all'avvio del proxy di autenticazione Cloud SQL.

  7. Vai alla pagina Istanze Cloud SQL nella console Google Cloud.

    Vai a Istanze Cloud SQL

  8. Seleziona l'istanza per aprire la relativa pagina Dettagli istanza e copia il valore Nome connessione istanza.

    Ad esempio: myproject:us-central1:myinstance.

  9. Avvia il proxy di autenticazione Cloud SQL.

    A seconda del linguaggio e dell'ambiente, puoi avviare il proxy di autenticazione Cloud SQL utilizzando socket TCP o Unix. I socket Unix non sono supportati per applicazioni scritte nel linguaggio di programmazione Java o per l'ambiente Windows.

    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.11.0 \
      --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 proxy di autenticazione Cloud SQL non sia esposto all'esterno dell'host locale. Il valore "0.0.0.0" nel parametro delle istanze è obbligatorio per rendere accessibile la porta dall'esterno del container Docker.

    Socket Unix

    docker run -d -v /cloudsql:/cloudsql \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.0 //
      --unix-socket=/cloudsql \
      --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.

    Se utilizzi un'immagine ottimizzata per i container, usa una directory scrivibile al posto di /cloudsql, ad esempio:

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    Puoi specificare più di un'istanza, separate da virgole. Puoi anche utilizzare i metadati di Compute Engine per determinare in modo dinamico le istanze a cui connettersi. Scopri di più sui parametri proxy.

  10. Avvia il client:

    La stringa di connessione da utilizzare dipende dall'avvio del proxy di autenticazione Cloud SQL utilizzando un socket TCP o un Docker.

    socket TCP

    1. Avvia il client sqlcmd:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
      

      Quando ti connetti utilizzando i socket TCP, si accede al proxy di autenticazione Cloud SQL tramite 127.0.0.1.

    2. Se richiesto, inserisci la password.
    3. Viene visualizzato il prompt sqlcmd.
Hai bisogno di aiuto? Per assistenza nella risoluzione dei problemi relativi al proxy, consulta la pagina relativa alla risoluzione dei problemi relativi alle connessioni al proxy di autenticazione di Cloud SQL o la pagina dell'assistenza di Cloud SQL.

Mantieni aggiornata l'immagine Docker del proxy di autenticazione Cloud SQL

L'immagine Docker del proxy di autenticazione Cloud SQL è basata su una versione specifica del proxy di autenticazione Cloud SQL. Quando una nuova versione del proxy di autenticazione Cloud SQL diventa disponibile, esegui il pull della nuova versione dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato l'ambiente. Puoi visualizzare la versione attuale del proxy di autenticazione Cloud SQL consultando la pagina delle release GitHub del proxy di autenticazione Cloud SQL. Le future release del proxy verranno indicate anche nel forum di annunci di Cloud SQL di Google Gruppi.

Passaggi successivi