Verbindung vom SQL Server-Client mit dem Cloud SQL Auth-Proxy-Docker-Image herstellen

Auf dieser Seite wird gezeigt, wie Sie einen sqlcmd-Client von einem Clientcomputer, auf dem Linux ausgeführt wird, oder von einer Compute Engine-Linux-Instanz mit Ihrer Cloud SQL-Instanz verbinden und dafür das Cloud SQL Auth-Proxy-Docker-Image verwenden.

Hinweise

Folgende Voraussetzungen müssen erfüllt sein:

sqlcmd-Client über das Cloud SQL Auth-Proxy-Docker-Image verbinden

So stellen Sie eine Verbindung mithilfe des Cloud SQL Auth-Proxy-Docker-Image her:

  1. Enable the Cloud SQL Admin API.

    Enable the API

  2. Wenn Sie eine Compute Engine-Instanz verwenden, müssen Sie sie vorbereiten:
    1. Rufen Sie die Eigenschaften der Compute Engine-Instanz auf:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Stellen Sie sicher, dass die Bereiche auf der Instanz aktiviert sind.

      Für eine Authentifizierung mit Bereichen sind diese beiden Bereiche erforderlich:

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

      Alternativ können durch den Bereich https://www.googleapis.com/auth/cloud-platform alle Google Cloud Platform APIs aktiviert werden.

      Wenn die Compute Engine-Instanz nicht die richtigen Bereiche umfasst, können Sie die Instanz entsprechend aktualisieren. Weitere Informationen finden Sie in der Compute Engine-Dokumentation.

    3. Stellen Sie mithilfe der Anleitungen unter Mit einer Linux-Instanz verbinden eine Terminalverbindung zur Instanz her.
  3. Installieren Sie den sqlcmd-Client auf der Compute Engine-Instanz oder auf dem Clientcomputer, wenn dieser noch nicht installiert ist.

    Debian/Ubuntu

    Für Debian/Ubuntu installieren Sie die entsprechenden SQL Server-Befehlszeilentools.

    CentOS/RHEL

    Für CentOS/RHEL installieren Sie die entsprechenden SQL Server-Befehlszeilentools.

    openSUSE

    Für openSUSE installieren Sie die entsprechenden SQL Server-Befehlszeilentools.

    Andere Plattformen

    Weitere Informationen finden Sie auf der Landingpage zur SQL Server-Installation und der SQL Server-Downloadseite.

  4. Installieren Sie gegebenenfalls den Docker-Client:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER
    

    Wenn Sie eine containeroptimierte Compute Engine-Instanz verwenden, ist dort der Docker-Client bereits installiert.

  5. Installieren Sie das Cloud SQL Auth-Proxy-Docker-Image aus der Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.12.0
  6. Wenn Sie das Cloud SQL Auth-Proxy-Docker-Image auf einem lokalen Computer (nicht auf einer Compute Engine-Instanz) ausführen oder wenn Ihre Compute Engine-Instanz nicht die erforderlichen Bereiche enthält, erstellen Sie ein Google Cloud Platform-Dienstkonto.
    1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf:

      Zur Seite „Dienstkonten“

    2. Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
    3. Klicken Sie auf Dienstkonto erstellen.
    4. Geben Sie im Feld Name des Dienstkontos einen Namen für das Dienstkonto ein.
    5. Ändern Sie die Dienstkonto-ID in einen eindeutigen, leicht erkennbaren Wert und klicken Sie dann auf Erstellen und fortfahren.
    6. Klicken Sie auf das Feld Rolle auswählen und wählen Sie eine der folgenden Rollen aus:
      • Cloud SQL > Cloud SQL-Client
      • Cloud SQL > Cloud SQL-Bearbeiter
      • Cloud SQL > Cloud SQL-Administrator
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
    8. Klicken Sie auf das Aktionsmenü für das neue Dienstkonto und wählen Sie Schlüssel verwalten aus.
    9. Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
    10. Prüfen Sie, ob der Schlüsseltyp JSON ist, und klicken Sie dann auf Erstellen.

      Die Datei mit dem privaten Schlüssel wird auf Ihren Computer heruntergeladen. Sie können die Datei an einen anderen Speicherort verschieben. Bewahren Sie die Schlüsseldatei sicher auf.

    Wenn Sie den Cloud SQL Auth-Proxy starten, geben Sie den Pfad zur Schlüsseldatei als „PATH_TO_KEY_FILE“ an.

  7. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

    Zu „Cloud SQL-Instanzen“

  8. Wählen Sie die Instanz aus, um ihre Seite Instanzdetails zu öffnen, und kopieren Sie den Namen der Instanzverbindung.

    Beispiel: myproject:us-central1:myinstance.

  9. Cloud SQL Auth-Proxy starten

    Je nach Ihrer Programmiersprache und Umgebung können Sie den Cloud SQL Auth-Proxy entweder mit TCP-Sockets oder mit Unix-Sockets starten. Allerdings werden Unix-Sockets nicht für Anwendungen unterstützt, die in der Programmiersprache Java oder für die Windows-Umgebung geschrieben sind.

    TCP-Sockets

    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.12.0 \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>
    

    Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter --credentials-file und die Zeile -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json nicht an.

    Geben Sie in -p immer das Präfix 127.0.0.1 an, damit der Cloud SQL Auth-Proxy nicht außerhalb des lokalen Hosts bereitgestellt wird. Die Angabe "0.0.0.0" im Instanzparameter ist erforderlich, damit von außerhalb des Docker-Containers auf den Port zugegriffen werden kann.

    Unix-Sockets

    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.12.0 //
      --unix-socket=/cloudsql \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME> 
    

    Wenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter --credentials-file und die Zeile -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json nicht an.

    Wenn Sie ein containeroptimiertes Image verwenden, ersetzen Sie /cloudsql durch ein beschreibbares Verzeichnis. Beispiel:

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    Sie können mehrere durch Kommas getrennte Instanzen angeben. Außerdem haben Sie die Möglichkeit, mithilfe von Compute Engine-Metadaten dynamisch die Instanzen zu bestimmen, zu denen eine Verbindung hergestellt werden soll. Proxy-Parameter.

  10. Starten Sie den Client:

    Der zu verwendende Verbindungsstring hängt davon ab, ob Sie den Cloud SQL Auth-Proxy mit einem TCP-Socket oder Docker gestartet haben.

    TCP-Sockets

    1. Starten Sie den sqlcmd-Client:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
      

      Wenn Sie die Verbindung mithilfe von TCP-Sockets herstellen, greifen Sie über 127.0.0.1 auf den Cloud SQL Auth-Proxy zu.

    2. Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
    3. Die sqlcmd-Eingabeaufforderung wird angezeigt.
Benötigen Sie Hilfe? Informationen zur Fehlerbehebung für den Proxy finden Sie unter Fehlerbehebung bei Cloud SQL Auth-Proxyverbindungen oder auf der Seite Cloud SQL-Support.

Docker-Image des Cloud SQL Auth-Proxys aktualisieren

Das Docker-Image des Cloud SQL Auth-Proxys basiert auf einer bestimmten Version des Cloud SQL Auth-Proxys. Wenn eine neue Version des Cloud SQL Auth-Proxys verfügbar ist, rufen Sie die neue Version des zugehörigen Docker-Image ab, damit Ihre Umgebung auf dem neuesten Stand ist. Die aktuelle Version des Cloud SQL Auth-Proxys finden Sie auf der GitHub-Seite mit Cloud SQL Auth-Proxyversionen. Zukünftige Proxyreleases werden auch im Google Groups Cloud SQL-Ankündigungsforum vermerkt.

Nächste Schritte