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.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Die gcloud CLI muss installiert sein. Weitere Informationen
- Die gcloud CLI wurde autorisiert. Weitere Informationen
- Das Standardprojekt für die gcloud CLI wurde festgelegt. Weitere Informationen
- Auf Ihrer Cloud SQL-Instanz wurde ein Datenbanknutzer konfiguriert. Weitere Informationen
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Herstellen einer Verbindung zu einer Cloud SQL-Instanz mithilfe des Docker-Images des Cloud SQL Auth-Proxys benötigen:
-
So stellen Sie eine Verbindung über den Cloud SQL Auth-Proxy her:
Cloud SQL-Client (
roles/cloudsql.client) -
Wenn Sie die IAM-Datenbankauthentifizierung verwenden:
Cloud SQL-Instanznutzer (
roles/cloudsql.instanceUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
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:
Aktivieren Sie die Cloud SQL Admin API, falls sie noch nicht aktiviert ist.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen- Wenn Sie eine Compute Engine-Instanz verwenden, müssen Sie sie vorbereiten:
- Rufen Sie die Eigenschaften der Compute Engine-Instanz auf:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Prüfen Sie das Dienstkonto und die Zugriffsbereiche, die für die Instanz konfiguriert sind:
- Prüfen Sie, ob das an die VM angehängte Dienstkonto die vordefinierte IAM-Rolle (Identity and Access Management) Cloud SQL-Client (
roles/cloudsql.client) hat, um eine Verbindung über den Cloud SQL Auth-Proxy oder die Cloud SQL Admin API herzustellen. Wenn Sie die IAM-Datenbankauthentifizierung verwenden, weisen Sie auch die Rolle Cloud SQL-Instanznutzer (roles/cloudsql.instanceUser) zu. Weitere Informationen zu vordefinierten Rollen finden Sie unter Erforderliche Rollen. - Achten Sie darauf, dass der VM-Zugriffsbereich auf
cloud-platform(https://www.googleapis.com/auth/cloud-platformoder Uneingeschränkten Zugriff auf alle Cloud APIs zulassen in der Google Cloud -Console) festgelegt ist. Zugriffsbereiche sind eine Legacy-Methode zum Festlegen der Autorisierung für eine VM und legen nur den maximalen OAuth-Autorisierungsbereich für Anfragen fest. Verwalten Sie die Zugriffssteuerung über vordefinierte IAM-Rollen anstelle von Zugriffsbereichen.
Wenn Ihre Compute Engine-Instanz nicht die erforderlichen Dienstkontorollen oder den erforderlichen Zugriffsbereich hat, können Sie die Instanz aktualisieren. Weitere Informationen zum Ändern des Dienstkontos und der Zugriffsbereiche auf einer VM finden Sie in der Compute Engine-Dokumentation unter Angehängtes Dienstkonto ändern.
- Prüfen Sie, ob das an die VM angehängte Dienstkonto die vordefinierte IAM-Rolle (Identity and Access Management) Cloud SQL-Client (
- Stellen Sie eine Terminalverbindung zur Instanz her. Folgen Sie dazu der Anleitung unter Mit Linux-Instanzen verbinden.
- Rufen Sie die Eigenschaften der Compute Engine-Instanz auf:
- 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.
- 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.
-
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.27.0
- Wenn Sie das Cloud SQL Auth-Proxy-Docker-Image auf einem lokalen Computer (nicht auf einer Compute Engine-Instanz) ausführen oder wenn das mit Ihrer Compute Engine-Instanz verknüpfte Dienstkonto nicht die erforderlichen IAM-Rollen und den erforderlichen Zugriffsbereich hat, erstellen Sie ein Google Cloud -Dienstkonto.
- Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.
- Wählen Sie das Projekt aus, in dem sich die Cloud SQL-Instanz befindet.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie im Feld Name des Dienstkontos einen Namen für das Dienstkonto ein.
- Ändern Sie die Dienstkonto-ID in einen eindeutigen, leicht erkennbaren Wert und klicken Sie dann auf Erstellen und fortfahren.
-
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
- Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
- Klicken Sie auf das Aktionsmenü für das neue Dienstkonto und wählen Sie Schlüssel verwalten aus.
- Klicken Sie auf das Drop-down-Menü Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
-
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.
- Rufen Sie in der Google Cloud Console die Seite „Cloud SQL-Instanzen“ auf.
-
Wählen Sie die Instanz aus, um ihre Seite Instanzdetails zu öffnen, und kopieren Sie den Namen der Instanzverbindung.
Beispiel:
myproject:us-central1:myinstance. -
Starten Sie den Cloud SQL Auth-Proxy.
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.27.0
--address 0.0.0.0 --port 1433
--credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAMEWenn Sie die von Ihrer Compute Engine-Instanz bereitgestellten Anmeldedaten verwenden, geben Sie den Parameter
--credentials-fileund die Zeile-v PATH_TO_KEY_FILE:/path/to/service-account-key.jsonnicht an.Geben Sie in
-pimmer das Präfix127.0.0.1an, damit der Cloud SQL Auth-Proxy nicht außerhalb des lokalen Hosts bereitgestellt wird. Das Flag--address 0.0.0.0ist erforderlich, damit von außerhalb des Docker-Containers auf den Port zugegriffen werden kann. - 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
- 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.1auf den Cloud SQL Auth-Proxy zu. - Geben Sie das Passwort ein, wenn Sie dazu aufgefordert werden.
- Die sqlcmd-Eingabeaufforderung wird angezeigt.
- Starten Sie den sqlcmd-Client:
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.
Nächste Schritte
- Weitere Informationen zum Cloud SQL Auth-Proxy
- Hilfe zur Fehlerbehebung bei Verbindungsproblemen für den Cloud SQL Auth Proxy erhalten
- Nutzer erstellen und Datenbanken erstellen.
- Weitere Informationen zu Optionen für die Verbindung der Anwendung mit der Instanz.
- Weitere Informationen zu Docker
- Informationen zur Google Container Registry
- Supportoptionen