Die Integration von Cloud SQL for SQL Server in Microsoft Entra ID bietet eine zentrale Identitäts- und Zugriffsverwaltung (IAM) für Ihre Datenbanken über Ihren vorhandenen Microsoft Entra ID-Mandanten.
Diese Integration bietet folgende Vorteile:
Zentrale Authentifizierung Ermöglicht Nutzern und Anwendungen, sich mit ihren vorhandenen Microsoft Entra ID-Identitäten bei ihren Cloud SQL for SQL Server-Instanzen anzumelden, ohne ein Passwort erneut eingeben zu müssen. Dadurch müssen keine separaten SQL Server-spezifischen Anmeldungen und Passwörter mehr verwaltet werden.
Erweiterte Sicherheitsfunktionen: Sie können die bestehenden Sicherheitsrichtlinien Ihrer Organisation, z. B. Multi-Faktor-Authentifizierung (MFA) und Regeln für bedingten Zugriff (Conditional Access, CA), auf Datenbankebene erzwingen.
Vereinfachte Nutzerverwaltung. Wenn das Microsoft Entra ID-Konto eines Nutzers deaktiviert oder entfernt wird, wird der Datenbankzugriff des Nutzers automatisch widerrufen. Diese Funktion vereinfacht das Offboarding und die Zugriffsüberprüfung.
Voraussetzungen für die Einbindung
Wenn Sie die Integration von Cloud SQL for SQL Server in Microsoft Entra ID verwenden möchten, muss Ihre Instanz die folgenden Anforderungen erfüllen:
Sie müssen eine vorhandene Instanz haben oder eine neue erstellen.
Die Microsoft Entra ID-Authentifizierung wird nur für SQL Server 2022 oder höher unterstützt. Sie ist für SQL Server 2017 oder SQL Server 2019 nicht verfügbar.
Aktivieren Sie die Microsoft Entra ID-Authentifizierung.
Führen Sie die folgenden Schritte in Ihrem Azure-Portal aus, bevor Sie die Microsoft Entra ID-Authentifizierung aktivieren:
- Microsoft Entra-Mandanten-ID ermitteln
Erstellen Sie eine neue Anwendungsregistrierung in Microsoft Entra ID.
Cloud SQL for SQL Server verwendet diese Anwendung, um mit Ihrer Microsoft Entra-Mandanten-ID zu kommunizieren. Notieren Sie sich beim Erstellen der Anwendung die Anwendungs- oder Client-ID.
Erteilen Sie der Anwendung Berechtigungen zum Lesen von Verzeichnisdaten:
- Wählen Sie die soeben erstellte Anwendungsregistrierung aus und klicken Sie dann auf API-Berechtigungen.
- Wählen Sie Berechtigung hinzufügen > Microsoft Graph > Anwendungsberechtigungen aus.
- Gewähren Sie einen der folgenden Berechtigungssätze:
- Option 1:
- Directory.Read.All
- Option 2: Bietet spezifischere Berechtigungen.
- Application.Read.All
- Group.Read.All
- User.Read.All
- Option 1:
- Erteilen Sie die mandantenweite Administratoreinwilligung, damit die Anwendung diese Berechtigungen verwenden kann.
Netzwerkverbindung
Microsoft Entra ID ist ein öffentlicher Dienst, der öffentliche Endpunkte für die Authentifizierung verwendet. Damit die Microsoft Entra ID-Authentifizierung ordnungsgemäß funktioniert, muss Ihre Cloud SQL-Instanz in der Lage sein, ausgehende Verbindungen zu diesen öffentlichen Endpunkten herzustellen. In den folgenden Abschnitten werden die nächsten Schritte basierend auf der Netzwerkkonnektivitätskonfiguration Ihrer Instanz erläutert:
Instanzen mit einer öffentlichen IP-Adresse
Wenn Ihre Cloud SQL-Instanz mit einer öffentlichen IP-Adresse konfiguriert ist, hat sie einen integrierten ausgehenden Zugriff auf das Internet.
Für die Microsoft Entra ID-Authentifizierung ist keine zusätzliche Netzwerkkonfiguration erforderlich. Lesen Sie sich jedoch die Einschränkungen durch, bevor Sie fortfahren.
Instanzen mit einer privaten IP-Adresse
Wenn Ihre Cloud SQL-Instanz nur mit einer privaten IP-Adresse konfiguriert ist, hat sie keinen direkten Zugriff auf das Internet. Sie müssen einen Pfad für ausgehenden Traffic konfigurieren, damit die Instanz die öffentlichen Identitätsendpunkte von Microsoft erreichen kann. Die Konfiguration der Microsoft Entra ID-Integration hängt davon ab, wie Ihre private Instanz konfiguriert ist:
Private Service Connect
Wenn Ihre Cloud SQL-Instanz für die Verwendung einer privaten IP-Adresse konfiguriert ist, empfehlen wir die Verwendung von Private Service Connect, um Microsoft Entra ID zu aktivieren. Dadurch entfallen bestimmte Wartungsaufgaben, z. B.:
- Bastion-Host-VMs verwalten
- Routen verwalten
- Erstellen von zu weit gefassten Routen, wie sie für die PSA-Konnektivität erforderlich sind.
Bevor Sie fortfahren, lesen Sie die Einschränkungen für die Verwendung von Microsoft Entra ID.
Wenn Sie eine Verbindung herstellen möchten, müssen Sie Cloud Network Address Translation (Cloud NAT) in der Nutzer-VPC konfigurieren. Dadurch kann die PSC-fähige Instanz das Cloud NAT-Gateway für ausgehenden Traffic zu öffentlichen Microsoft-Endpunkten verwenden. Nach der Aktivierung wird der Traffic durch das interne Routing so eingeschränkt, dass nur Traffic im Zusammenhang mit Microsoft Entra ID Ihre Cloud NAT-Instanz erreicht.
Führen Sie die folgenden erforderlichen Schritte aus, um die Konnektivität zu aktivieren:
- PSC-fähige Instanz erstellen
- Konfigurieren Sie die ausgehende Verbindung für Ihre Cloud SQL-Instanz.
- Cloud NAT-Gateway erstellen
Zugriff auf private Dienste
Wenn Ihre Cloud SQL-Instanz für die Verwendung einer privaten IP-Adresse konfiguriert ist und Sie PSA verwenden, sind die folgenden Schritte erforderlich, um die Verbindung zu Microsoft Entra ID zu aktivieren:
Stellen Sie eine Bastion-Host-VM in Ihrer VPC bereit.
Wenn Sie eine Bastion Host-VM in Ihrem Projekt erstellen, muss die IP-Weiterleitung aktiviert sein. Wenn Sie eine Linux-basierte Bastion Host-VM erstellt haben, konfigurieren Sie die gerade erstellte Bastion Host-VM für die IP-Weiterleitung:
sudo sysctl net.ipv4.conf.all.forwarding=1 sudo iptables --table nat --append POSTROUTING --out-interface ens4 -j MASQUERADEKonfigurieren Sie die erforderlichen Netzwerkrouten, um den Microsoft Entra ID-Authentifizierungstraffic von Ihrer Cloud SQL-Instanz über die Bastion Host-VM an das Internet weiterzuleiten.
Fügen Sie die entsprechenden Routen für jeden Microsoft Entra ID-Endpunkt hinzu. Die aktuellen IP-Bereiche finden Sie im Abschnitt
AzureActiveDirectoryder Ressourcendatei Azure IP Ranges and Service Tags. Beispielsweise verwenden die Microsoft Entra ID-Anmeldeendpunkte wielogin.microsoftonline.comIP-Adressen in den Bereichen20.190.128.0/18und40.126.0.0/18.gcloud
Erstellen Sie für jeden Microsoft Entra ID-IP-Bereich zwei Routen und ersetzen Sie
VM_NAMEundVM_ZONEdurch den tatsächlichen Namen und die Zone Ihrer Bastion Host-VM:gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE \ --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=PROJECT_ID compute routes create NAME \ --network=NETWORK --destination-range=RANGE --priority=999 \ --next-hop-instance=VM_NAME --next-hop-instance-zone=VM_ZONE \ --next-hop-ilb=ILB_VALUEErsetzen Sie Folgendes:
- PROJECT_ID: die ID des Projekts, in dem sich Ihre Cloud SQL-Instanz befindet.
- NAME: der Name der Route, die Sie erstellen möchten.
- NETWORK: der Name des Netzwerks, in dem sich Ihre Cloud SQL-Instanz befindet.
- RANGE: der IP-Bereich, den Sie verwenden möchten.
- VM_NAME: der Name der Bastion Host-VM, die Sie einbeziehen möchten.
- VM_ZONE: die Zone der Bastion Host-VM, die Sie einbeziehen möchten, z. B.
us-central1. ILB_VALUE: Optional. Der Name oder die IP-Adresse einer Weiterleitungsregel für einen internen TCP/UDP-Load-Balancer. Wenn Sie einen Load Balancer vor Ihren Bastion Host-VMs konfiguriert haben, müssen Sie das Flag
--next-hop-ilbin diesen Befehl einfügen.Weitere Informationen finden Sie unter Interne Passthrough-Netzwerk-Load-Balancer als nächste Hops.
Ein Beispiel könnte so aussehen:
gcloud --project=my-customer-project compute routes create my-route-1 --network=default --destination-range=20.20.32.0/27 --priority=998 --next-hop-gateway=default-internet-gateway gcloud --project=my-customer-project compute routes create my-route-2 --network=default --destination-range=20.20.32.0/27 --priority=999 --next-hop-instance=my-bastion-vm --next-hop-instance-zone=us-central1-c --next-hop-ilb=fr-ilb1Verwenden Sie denselben Befehl wie im vorherigen Schritt, um dieselbe Konfiguration anzuwenden und Traffic für die Zertifikatswiderrufsprüfung von Microsoft Entra ID zuzulassen. Verwenden Sie die IP-Bereiche, die unter DigiCert Certificate Status IP address aufgeführt sind.
Wenn Sie diesen Schritt nicht ausführen, funktioniert die Microsoft Entra ID-Authentifizierung möglicherweise trotzdem, aber es kann zu Verzögerungen beim Öffnen neuer Verbindungen kommen.
Microsoft Entra ID-Authentifizierung verwalten
Sie können die Entra ID-Authentifizierung für eine neue oder vorhandene Instanz aktivieren.
Instanz mit aktivierter Microsoft Entra ID-Authentifizierung erstellen
Sie können die Microsoft Entra ID-Authentifizierung aktivieren, wenn Sie eine neue Cloud SQL for SQL Server-Instanz erstellen. Sie müssen die spezifische Microsoft Entra-Mandanten-ID und die Anwendungs-ID (Client-ID) der App-Registrierung angeben, die Sie in Ihrem Azure-Portal konfiguriert haben.
Weitere Informationen finden Sie unter Voraussetzungen.
gcloud
gcloud sql instances create INSTANCE_NAME \
--database-version=EDITION \
--tier=TIER \
--network=NETWORK
--root-password=PASSWORD
--entra-id-tenant-id=TENANT_ID \
--entra-id-application-id=APPLICATION_ID
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, die Sie erstellen möchten.
- EDITION: die Instanzversion, die Sie verwenden möchten, z. B.
SQLSERVER_2025_STANDARD. - TIER: die Instanzstufe oder der Maschinentyp, die bzw. den Sie verwenden möchten, z. B.
db-custom-2-3840. - NETWORK: der Netzwerkname, den Sie verwenden möchten.
- PASSWORD: das Instanzpasswort.
- TENANT_ID: die Microsoft Entra-Mandanten-ID.
- APPLICATION_ID: die Anwendungs- oder Client-ID.
Ein Beispiel könnte so aussehen:
gcloud sql instances create my-entraid-instance \
--database-version=SQLSERVER_2025_STANDARD \
--tier=db-custom-2-3840 \
--assign-ip \
--root-password=D61Xv36f!0lE \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST Version 1
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: der Name des Projekts, in dem sich die zu erstellende Instanz befinden wird.
- INSTANCE_ID: die ID der Instanz, die Sie erstellen möchten.
- EDITION: die Instanzversion, die Sie verwenden möchten, z. B.
SQLSERVER_2022_STANDARD. - REGION: die Region, in der sich die Instanz befinden soll, z. B.
us-central1. - PASSWORD: das Instanzpasswort.
- TIER: die Instanzstufe oder der Maschinentyp, die bzw. den Sie verwenden möchten, z. B.
db-custom-2-3840. - NETWORK: der Netzwerkname, den Sie verwenden möchten.
- TENANT_ID: die Microsoft Entra-Mandanten-ID.
- APPLICATION_ID: die Anwendungs- oder Client-ID.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON-Text anfordern:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: der Name des Projekts, in dem sich die zu erstellende Instanz befinden wird.
- INSTANCE_ID: die ID der Instanz, die Sie erstellen möchten.
- EDITION: die Instanzversion, die Sie verwenden möchten, z. B.
SQLSERVER_2022_STANDARD. - REGION: die Region, in der sich die Instanz befinden soll, z. B.
us-central1. - PASSWORD: das Instanzpasswort.
- TIER: die Instanzstufe oder der Maschinentyp, die bzw. den Sie verwenden möchten, z. B.
db-custom-2-3840. - NETWORK: der Netzwerkname, den Sie verwenden möchten.
- TENANT_ID: die Microsoft Entra-Mandanten-ID.
- APPLICATION_ID: die Anwendungs- oder Client-ID.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{
"databaseVersion":"EDITION",
"name":"INSTANCE_ID",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":
{
"tier":"TIER",
"ipConfiguration":
{
"privateNetwork":"NETWORK"
},
"entraidConfig":
{
"tenantId": "TENANT_ID",
"applicationId": "APPLICATION_ID"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Microsoft Entra ID-Authentifizierung für eine vorhandene Instanz verwalten
Sie können die Microsoft Entra ID-Konfiguration für eine vorhandene Instanz jederzeit aktivieren, ändern oder deaktivieren.
Wenn Sie die Konfiguration Ihrer Instanz ändern möchten, müssen Sie die Instanz mit den neuen oder gelöschten Werten für die Mandanten-ID und die Anwendungs-ID (Client-ID) patchen.
Bei diesem Vorgang wird keine Domain hinzugefügt oder entfernt.
Sie können die Werte für die Mandanten-ID und die Anwendungs-ID aktualisieren, ohne die Integration in Microsoft Entra ID zu aktivieren oder zu deaktivieren.
gcloud
gcloud sql instances patch INSTANCE_NAME \
--entra-id-tenant-id="NEW_TENANT_ID" \
--entra-id-application-id="NEW_APPLICATION_ID"
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, die Sie ändern möchten.
- NEW_TENANT_ID: die neue Microsoft Entra-Mandanten-ID. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
- NEW_APPLICATION_ID: die neue Anwendungs- oder Client-ID. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
Ein Beispiel könnte so aussehen:
gcloud sql instances patch my-existing-instance \
--entra-id-tenant-id=7e281aab-e994-4c83-88ed-d1674477a39c \
--entra-id-application-id=4c5ed2da-0478-4aaa-ab65-6dfd33ba8bfd
REST Version 1
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet, die Sie ändern möchten.
- INSTANCE_ID: die ID der Instanz, die Sie ändern möchten.
- TENANT_ID: die Microsoft Entra-Mandanten-ID. Wenn Sie Microsoft Entra ID deaktivieren möchten, lassen Sie diesen String leer.
- APPLICATION_ID: die Anwendungs- oder Client-ID. Wenn Sie Microsoft Entra ID deaktivieren möchten, lassen Sie diesen String leer.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON-Text anfordern:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet, die Sie ändern möchten.
- INSTANCE_ID: die ID der Instanz, die Sie ändern möchten.
- TENANT_ID: die Microsoft Entra-Mandanten-ID. Wenn Sie Microsoft Entra ID deaktivieren möchten, lassen Sie diesen String leer.
- APPLICATION_ID: die Anwendungs- oder Client-ID. Wenn Sie Microsoft Entra ID deaktivieren möchten, lassen Sie diesen String leer.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{
"settings":
{
"entraidConfig":
{
"tenantId": "NEW_TENANT_ID",
"applicationId": "NEW_APPLICATION_ID"
}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Zertifikat zur Anwendung hinzufügen
Damit Ihre Microsoft Entra ID Ihre Cloud SQL for SQL Server-Instanz authentifizieren kann, müssen Sie das öffentliche Zertifikat der Cloud SQL for SQL Server-Instanz in Ihre Microsoft Entra ID-Anwendungsregistrierung hochladen.
Nachdem Sie die Microsoft Entra ID-Authentifizierung auf Ihrer Instanz aktiviert haben, erstellen Sie ein instanzspezifisches Zertifikat für Microsoft Entra ID.
gcloud
gcloud sql ssl entraid-certs create --instance=INSTANCE_NAMEErsetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, für die Sie ein Zertifikat erstellen möchten.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/addEntraIdCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Rufen Sie die Details des soeben erstellten Zertifikats ab, indem Sie die Details der Instanz abrufen:
gcloud
gcloud sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, die mit dem gerade erstellten Zertifikat verknüpft ist.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Mit diesem Befehl wird ein Zertifikat ausgegeben, das Sie in einer Datei speichern und später in das Azure-Portal hochladen können.
Sie müssen alle eingebetteten Zeilenumbruchzeichen aus der Datei entfernen und jede neue Zeile manuell trennen. Andernfalls schlägt der Dateiupload fehl.
Sie erhalten beispielsweise einen Textstring wie den folgenden:
Line1\Line2\Line3Sie müssen jede Zeile manuell trennen, ähnlich wie hier:
Line1 Line2 Line3Wenn Sie diese Aufgabe nicht manuell ausführen möchten, können Sie alternativ den folgenden Befehl verwenden:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Ersetzen Sie Folgendes:
- PROJECT_ID: die Projekt-ID, in der sich Ihre Instanz befindet.
- INSTANCE_NAME: der Name der Instanz, die mit dem gerade erstellten Zertifikat verknüpft ist.
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/listEntraIdCertificates
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Mit diesem Befehl wird ein Zertifikat ausgegeben, das Sie in einer Datei speichern und später in das Azure-Portal hochladen können.
Sie müssen alle eingebetteten Zeilenumbruchzeichen aus der Datei entfernen und jede neue Zeile manuell trennen. Andernfalls schlägt der Dateiupload fehl.
Sie erhalten beispielsweise einen Textstring wie den folgenden:
Line1\Line2\Line3Sie müssen jede Zeile manuell trennen, ähnlich wie hier:
Line1 Line2 Line3Wenn Sie diese Aufgabe nicht manuell ausführen möchten, können Sie alternativ den folgenden Befehl verwenden:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "x-goog-user-project: PROJECT_ID" "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/listEntraIdCertificates" -s | jq -r '.certs[0].cert'Ersetzen Sie Folgendes:
- PROJECT_ID: die Projekt-ID, in der sich Ihre Instanz befindet.
- INSTANCE_NAME: der Name der Instanz, die mit dem gerade erstellten Zertifikat verknüpft ist.
Fügen Sie Ihr Zertifikat im Azure-Portal hinzu.
- Rufen Sie im Azure-Portal die App-Registrierung auf.
- Öffnen Sie Zertifikate und Secrets.
- Wählen Sie Zertifikat hochladen aus. Suchen Sie die Zertifikatsdatei, die Sie von Ihrer Instanz abgerufen haben, und fügen Sie sie hinzu.
- Klicken Sie auf OK.
Microsoft Entra ID-Zertifikat rotieren
Sie müssen das Microsoft Entra ID-Zertifikat rotieren, bevor es abläuft. Wir empfehlen, diesen Vorgang mindestens eine Woche vor dem geplanten Ablaufdatum zu starten:
Folgen Sie der Anleitung unter Zertifikat zur Anwendung hinzufügen, um ein neues, inaktives Zertifikat auf Ihrer Cloud SQL for SQL Server-Instanz zu erstellen und es dann über das Azure-Portal in Microsoft Entra ID hochzuladen. Dies hat keine Auswirkungen auf das derzeit aktive Zertifikat.
Aktivieren Sie das neue Zertifikat auf der Cloud SQL for SQL Server-Instanz. Dadurch wird Cloud SQL for SQL Server veranlasst, das neue Zertifikat für alle neuen Authentifizierungen zu verwenden.
gcloud
gcloud sql ssl entraid-certs rotate --instance=INSTANCE_NAMEErsetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, die mit dem Zertifikat verknüpft ist, das Sie rotieren möchten.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/rotateEntraIdCertificate
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Ihre Instanz verwendet jetzt das neue Zertifikat.
Sie können das alte Zertifikat sicher aus Ihrer Microsoft Entra ID-Anwendungsregistrierung und aus der Cloud SQL for SQL Server-Instanz entfernen. Weitere Informationen finden Sie unter Anmeldedaten für Anwendungen in Microsoft Entra ID hinzufügen und verwalten.
Microsoft Entra ID-Zertifikat zurücksetzen
Wenn nach der Rotation zu einem neuen Zertifikat Probleme auftreten, können Sie ein Rollback zum vorherigen Zertifikat durchführen.
Für einen Rollback muss das vorherige Zertifikat noch gültig sein und von Ihrer Microsoft Entra ID-Anwendungsregistrierung als vertrauenswürdig eingestuft werden.
Mit den folgenden Befehlen wird das angegebene vorherige Zertifikat auf Ihrer Cloud SQL for SQL Server-Instanz sofort wieder aktiviert.
gcloud
gcloud sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Instanz, die mit dem Zertifikat verknüpft ist, das Sie zurücksetzen möchten.
REST Version 1
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz, für die Sie das Zertifikat zurücksetzen möchten.
- CERTIFICATE_NAME: der Name des neuen Zertifikats, das Sie anstelle des alten Zertifikats verwenden möchten, z. B.
sha1Fingerprint.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
JSON-Text anfordern:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz, für die Sie das Zertifikat zurücksetzen möchten.
- CERTIFICATE_NAME: der Name des neuen Zertifikats, das Sie anstelle des alten Zertifikats verwenden möchten, z. B.
sha1Fingerprint.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/rollbackEntraIdCertificate
JSON-Text anfordern:
{
{
"RotateEntraIdCertificateContext": {"nextVersion": "CERTIFICATE_NAME"}
}
}
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-01T19:13:21.834Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Erste Microsoft Entra ID-Anmeldung erstellen
Nachdem Sie die Microsoft Entra ID-Authentifizierung auf der Instanz aktiviert haben, müssen Sie Ihre Microsoft Entra ID-Anmeldungen erstellen.
Erstellen Sie die erste Microsoft Entra ID-Anmeldung.
Diese erste Anmeldung, die einen Microsoft Entra ID-Nutzer oder eine Microsoft Entra ID-Gruppe darstellt, kann nicht mit T-SQL erstellt werden. Sie müssen sie entweder mit der gcloud CLI oder der Cloud SQL Admin API erstellen:
gcloud
gcloud sql users create USER_NAME --instance=INSTANCE_NAME --type=ENTRAID_USERErsetzen Sie Folgendes:
- USER_NAME: der Name des Cloud SQL for SQL Server-Nutzers, den Sie erstellen möchten.
- INSTANCE_NAME: der Name der Instanz, für die Sie Microsoft Entra ID-Anmeldungen erstellen möchten.
- ENTRAID_USER: der Microsoft Entra ID-Nutzername.
Ein Beispiel könnte so aussehen:
gcloud sql users create myentraiduser@mytenant.com --instance=my-entraid-instance --type=ENTRAID_USERREST Version 1
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz, die Sie aktualisieren möchten.
- USER_NAME: der Name des Cloud SQL for SQL Server-Nutzers, den Sie erstellen möchten.
- ENTRAID_USER: der Microsoft Entra ID-Nutzername.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users
JSON-Text anfordern:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
Im folgenden grundlegenden API-Aufruf werden nicht alle möglichen Felder angezeigt. Ein Prototyp einer JSON-Anfrage ist unter Einstellungen zu finden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID des Projekts, in dem sich die Instanz befindet.
- INSTANCE_ID: die ID der Instanz, die Sie aktualisieren möchten.
- USER_NAME: der Name des Cloud SQL for SQL Server-Nutzers, den Sie erstellen möchten.
- ENTRAID_USER: der Microsoft Entra ID-Nutzername.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users
JSON-Text anfordern:
{ "name": "USER_NAME" "type": "ENTRAID_USER" }Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }Nachdem die erste Microsoft Entra ID-Anmeldung erstellt wurde, können Sie sich als dieser Nutzer mit der Datenbank verbinden.
Erstellen Sie nachfolgende Microsoft Entra ID-Anmeldungen.
Sie können zusätzliche Microsoft Entra ID-Anmeldungen erstellen und verwalten, wie im vorherigen Schritt beschrieben.
Wenn Sie stattdessen ein anderes Tool wie SQL Server Management Studio (SSMS) verwenden möchten, müssen Sie der ersten Anmeldung zuerst die Berechtigung zum Verwalten anderer Anmeldungen erteilen:
GRANT ALTER ANY LOGIN TO [ENTRA_ID_USER] AS CustomerDbRootRoleErsetzen Sie ENTRAID_USER durch den Microsoft Entra ID-Nutzernamen.
Sobald die Berechtigungen gewährt wurden, können mit diesem Log-in andere Microsoft Entra ID-Log-ins mithilfe von Standard-T-SQL-Befehlen erstellt und verwaltet werden. Ein Beispielbefehl könnte so aussehen:
CREATE LOGIN [<<ENTRA_ID_USER>>] FROM EXTERNAL PROVIDERErsetzen Sie ENTRAID_USER durch den Microsoft Entra ID-Nutzernamen.
Verwenden Sie Standard-T-SQL-Befehle, um Nutzer basierend auf Microsoft Entra ID-Anmeldungen zu erstellen oder Berechtigungen zu gewähren.
Weitere Informationen, einschließlich der Erstellung einer Anmeldung mit der richtigen Syntax, finden Sie unter Microsoft Entra-Authentifizierung für SQL Server mit App-Registrierung einrichten.
Best Practices
Um Berechtigungen zu isolieren und Sicherheitsgrenzen besser zu definieren, empfehlen wir dringend, für jede Cloud SQL for SQL Server-Instanz eine eindeutige Microsoft Entra ID-Anwendungsregistrierung zu erstellen. Das Widerrufen der Anmeldedaten der Anwendung hat keine Auswirkungen auf andere, nicht zugehörige Instanzen.
Weitere Informationen finden Sie unter Anwendung in Microsoft Entra ID registrieren.
Fehlerbehebung
In den folgenden Abschnitten werden Probleme behandelt, die bei der Verwaltung der Microsoft Entra ID-Integration auftreten können.
Probleme mit der Netzwerkverbindung bei privaten IP-Instanzen
Bei der Einrichtung der Integration können die folgenden Probleme auftreten:
- Langsame Vorgänge zum Erstellen von Microsoft Entra ID-Anmeldungen
- Microsoft Entra ID-Anmeldungen können nicht erstellt werden
- Verbindung zur Instanz über die Microsoft Entra ID-Authentifizierung kann nicht hergestellt werden
Führen Sie den folgenden Konnektivitätstest aus, um diese Probleme zu beheben:
Erstellen Sie im selben Google Cloud -Projekt und in derselben VPC sowie in derselben Region wie Ihre Cloud SQL for SQL Server-Instanz eine Test-VM, die nur mit einer privaten IP-Adresse konfiguriert ist.
Stellen Sie über das Remote Desktop Protocol (RDP) oder das Secure Shell Protocol (SSH) eine Verbindung zur gerade erstellten VM her. Führen Sie dann die folgenden Befehle aus, um die Erreichbarkeit zu testen. Diese Schritte können sowohl auf Linux- als auch auf Windows-basierte VMs angewendet werden:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Wenn Sie einen dieser Endpunkte nicht erreichen können, sei es aufgrund von Zeitüberschreitungen oder Fehlern bei der Verbindungsablehnung, prüfen Sie Ihre Netzwerkkonfiguration auf Folgendes:
- Achten Sie bei Private Service Connect darauf, dass Cloud NAT richtig konfiguriert ist, um ausgehenden Internetzugriff zuzulassen.
- Prüfen Sie für den Zugriff auf private Dienste die Konfiguration Ihrer benutzerdefinierten Routen und Bastion Hosts.
- Prüfen Sie Ihre VPC-Firewallregeln, um sicherzustellen, dass ausgehender Traffic zu diesen Domains nicht blockiert wird.
Häufige Fehlermeldungen
Bei der Microsoft Entra ID-Authentifizierung kann der folgende Anmeldefehler auftreten:
Login failed for user ""
Prüfen Sie, ob für diesen Microsoft Entra ID-Nutzer ein SQL Server-Login vorhanden ist, um dieses Problem zu beheben.
Migration von Microsoft Active Directory
In den folgenden Szenarien können Sie die Microsoft Entra ID-Authentifizierung aktivieren, ohne die vorhandene Microsoft Active Directory-Authentifizierung zu deaktivieren:
- Phasenweise Migration durchführen Verschieben der Authentifizierungsautorität von Microsoft Active Directory zu Microsoft Entra ID mithilfe von vom Kunden verwaltetem Active Directory (CMAD) oder Managed Service for Microsoft Active Directory.
- Verwendung einer Hybridumgebung. Sowohl Microsoft Active Directory als auch Microsoft Entra ID gleichzeitig aktiviert lassen.
Logging
Für Berichte zu grundlegenden Fehlern und Warnungen, z. B. ob Microsoft Entra ID aktiviert ist, verwenden Sie das Standard-sqlserver.err-Log. Ausführlichere Informationen zum Monitoring und zur Fehlerbehebung finden Sie im Log entraid.log. Es enthält unter anderem folgende Informationen:
- Gibt den Verbindungsstatus für jeden erforderlichen Endpunkt an.
- Meldet Details zu fehlenden API-Berechtigungen.
- Gibt die Anzahl der Tage an, die bis zum Ablauf des Clientzertifikats verbleiben.
- Stellt spezifische interne Fehler bereit, z. B. Fehler beim Abrufen von Tokens, die Ihnen helfen können, die Ursache eines Problems zu finden.
Logeinträge werden täglich oder bei jeder Statusänderung aktualisiert.
Lesereplikate
- Wenn Sie einer primären Instanz, für die Microsoft Entra ID aktiviert ist, ein Lesereplikat hinzufügen, wird das Lesereplikat automatisch für die Verwendung von Microsoft Entra ID konfiguriert.
- Wenn für die primäre Instanz Microsoft Entra ID aktiviert ist und Sie eine Sicherung auf dieser Instanz wiederherstellen, wird das zugehörige Lesereplikat automatisch für die Verwendung von Microsoft Entra konfiguriert, da sich die Identität nicht ändert.
- Änderungen an der Mandanten-ID, der Anwendungs-ID oder den Zertifikaten der primären Instanz werden automatisch an die zugehörigen Lesereplikate der Instanz weitergegeben.
Verwaltete Lesepools
- Änderungen an der Mandanten-ID, der Anwendungs-ID oder den Zertifikaten der primären Instanz werden automatisch an die zugehörigen verwalteten Lesepools der Instanz weitergegeben.
Geklonte Instanzen und Wiederherstellung in einer anderen Instanz
In den folgenden Szenarien wird die Microsoft Entra ID-Integration nicht automatisch für die neue Instanz konfiguriert:
- Ein Klon der primären Instanz.
- Eine Sicherung, die auf einer Instanz wiederhergestellt wurde, die nicht die primäre Instanz ist.
In solchen Fällen müssen Sie Microsoft Entra ID manuell auf der neuen Instanz aktivieren und dann das Zertifikat noch einmal in die Microsoft Entra ID-Anwendung hochladen. Diese Anforderung ist eine Sicherheitsmaßnahme, um zu verhindern, dass mehrere, nicht zusammenhängende Instanzen dieselbe Anwendungsidentität verwenden.
Beschränkungen
- Die Microsoft Entra ID-Authentifizierung wird nur für SQL Server 2022 oder höher unterstützt. Sie ist für SQL Server 2017 oder SQL Server 2019 nicht verfügbar.
- Wenn Sie eine Instanz klonen oder eine Sicherung in einer anderen Instanz wiederherstellen, wird die Microsoft Entra ID-Integration nicht automatisch auf der neuen Instanz konfiguriert.
- Wenn Sie die Microsoft Entra ID-Authentifizierung auf einer regionalen Instanz mit einer öffentlichen IP-Adresse und Zugriff auf private Dienste aktivieren möchten, muss Ihre Instanz für die Verwendung mit einer Zugriffsroute für private Dienste von einer Bastion-VM konfiguriert sein.
- Wenn Sie die Microsoft Entra ID-Authentifizierung auf einer regionalen Instanz aktivieren möchten, die Private Service Connect und den Zugriff auf private Dienste verwendet, muss Ihre Instanz für die Verwendung mit einer Route für den Zugriff auf private Dienste von einer Bastion-VM konfiguriert sein.