Die Integration von Cloud SQL for SQL Server in Microsoft Entra ID bietet eine zentrale Identitäts- und Zugriffsverwaltung (IAM) für Ihre Datenbanken mit Ihrem 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 noch einmal eingeben zu müssen. Dadurch entfällt die Notwendigkeit, separate SQL Server-spezifische Anmeldungen und Passwörter zu verwalten.
Erhöhte Sicherheit. Sie können die vorhandenen Sicherheitsrichtlinien Ihrer Organisation, z. B. Regeln für die Multi-Faktor-Authentifizierung (MFA) und den 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üfungen.
Voraussetzungen für die Einbindung
Damit Sie die Einbindung von Cloud SQL for SQL Server in Microsoft Entra ID verwenden können, muss Ihre Instanz die folgenden Anforderungen erfüllen:
Sie benötigen eine vorhandene SQL Server 2022-Instanz oder müssen eine neue erstellen.
Die Microsoft Entra ID-Authentifizierung wird nur in SQL Server 2022 unterstützt. Sie ist nicht in SQL Server 2017 oder SQL Server 2019 verfügbar.
Aktivieren Sie die Microsoft Entra ID-Authentifizierung.
Bevor Sie die Microsoft Entra ID-Authentifizierung aktivieren, führen Sie die folgenden Schritte im Azure-Portal aus:
- 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.
Berechtigungen für die Anwendung zum Lesen von Verzeichnisdaten erteilen:
- Wählen Sie die soeben erstellte Anwendungsregistrierung aus und klicken Sie auf API-Berechtigungen.
- Wählen Sie Berechtigung hinzufügen > Microsoft Graph > Anwendungsberechtigungen aus.
- Gewähren Sie eine der folgenden Berechtigungsgruppen:
- 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 Administratorzustimmung, 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 ausgehende Verbindungen zu diesen öffentlichen Endpunkten herstellen können. In den folgenden Abschnitten werden die nächsten Schritte basierend auf der Netzwerkkonnektivitätskonfiguration Ihrer Instanz beschrieben:
Instanzen mit einer öffentlichen IP-Adresse
Wenn Ihre Cloud SQL-Instanz mit einer öffentlichen IP-Adresse konfiguriert ist, hat sie integrierten ausgehenden Zugriff auf das Internet.
Für die Microsoft Entra ID-Authentifizierung ist keine zusätzliche Netzwerkkonfiguration erforderlich. Lesen Sie jedoch die Einschränkungen, 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 Ausgangspfad 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.:
- Verwaltung von Bastion-Host-VMs
- Routen verwalten
- Erstellen von zu allgemeinen Routen, wie sie für die PSA-Konnektivität erforderlich sind.
Lesen Sie sich die Einschränkungen für die Verwendung von Microsoft Entra ID durch, bevor Sie fortfahren.
Damit eine Verbindung hergestellt werden kann, müssen Sie Cloud NAT in der Consumer-VPC konfigurieren. So 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 Microsoft Entra ID-bezogener Traffic Ihre Cloud NAT-Instanz erreicht.
Führen Sie die folgenden erforderlichen Schritte aus, um die Verbindung zu aktivieren:
- PSC-fähige Instanz erstellen
- Ausgehende Verbindungen für Ihre Cloud SQL-Instanz konfigurieren
- 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 in Ihrem Projekt eine Bastion Host-VM 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-Authentifizierungs-Traffic von Ihrer Cloud SQL-Instanz über den Bastion Host-VM-Host ins Internet zu leiten.
Fügen Sie die entsprechenden Routen für jeden Microsoft Entra ID-Endpunkt hinzu. Die aktuellen IP-Bereiche finden Sie im Abschnitt
AzureActiveDirectory.ServiceEndpointin der Ressourcendatei Azure IP Ranges and Service Tags.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, damit Traffic für die Überprüfung des Zertifikatwiderrufs von Microsoft Entra ID zugelassen wird. 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 weiterhin, es kann aber auch 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 Anwendungs-ID (Client-ID) der App-Registrierung angeben, die Sie in Ihrem Azure-Portal konfiguriert haben.
Weitere Informationen finden Sie unter Voraussetzungen.
gcloud
gcloud beta 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: Name der zu erstellenden Instanz.
- EDITION: Die Instanzversion, die Sie verwenden möchten, z. B.
SQLSERVER_2022_STANDARD. - TIER: Die Instanzstufe oder der Maschinentyp, 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 beta sql instances create my-entraid-instance \
--database-version=SQLSERVER_2022_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 Instanz befinden soll, die Sie erstellen möchten.
- 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, 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 Instanz befinden soll, die Sie erstellen möchten.
- 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, 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 geht es nicht darum, einer Domain beizutreten oder sie zu verlassen.
Sie können die Werte für die Mandanten-ID und die Anwendungs-ID aktualisieren, ohne die Integration mit Microsoft Entra ID zu aktivieren oder zu deaktivieren.
gcloud
gcloud beta 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 beta 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. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
- APPLICATION_ID: die Anwendungs- oder Client-ID. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
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. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
- APPLICATION_ID: die Anwendungs- oder Client-ID. Lassen Sie diesen String leer, um Microsoft Entra ID zu deaktivieren.
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-App-Registrierung hochladen.
Nachdem Sie die Microsoft Entra ID-Authentifizierung für Ihre Instanz aktiviert haben, erstellen Sie ein instanzspezifisches Zertifikat für Microsoft Entra ID.
gcloud
gcloud beta sql ssl entraid-certs create --instance=INSTANCE_NAMEErsetzen Sie Folgendes:
- INSTANCE_NAME: 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 für das soeben erstellte Zertifikat ab, indem Sie die Details der Instanz abrufen:
gcloud
gcloud beta sql ssl entraid-certs list --instance=INSTANCE_NAME --format="value(ssl_cert.cert)"Ersetzen Sie Folgendes:
- INSTANCE_NAME: Der Name der Instanz, die dem gerade erstellten Zertifikat zugeordnet 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.
Beispielsweise erhalten Sie möglicherweise einen Textstring ähnlich dem folgenden:
Line1\Line2\Line3Sie müssen jede Zeile manuell trennen, wie im Folgenden dargestellt:
Line1 Line2 Line3Wenn Sie diese Aufgabe nicht manuell ausführen möchten, verwenden Sie stattdessen den folgenden Befehl:
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 die Instanz befindet.
- INSTANCE_NAME: Der Name der Instanz, die dem gerade erstellten Zertifikat zugeordnet 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.
Beispielsweise erhalten Sie möglicherweise einen Textstring ähnlich dem folgenden:
Line1\Line2\Line3Sie müssen jede Zeile manuell trennen, wie im Folgenden dargestellt:
Line1 Line2 Line3Wenn Sie diese Aufgabe nicht manuell ausführen möchten, verwenden Sie stattdessen den folgenden Befehl:
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 die Instanz befindet.
- INSTANCE_NAME: Der Name der Instanz, die dem gerade erstellten Zertifikat zugeordnet 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 nach der Zertifikatsdatei, die Sie von Ihrer Instanz abgerufen haben, und fügen Sie sie hinzu.
- Klicken Sie auf OK.
Microsoft Entra ID-Zertifikat wechseln
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 der Anwendung hinzufügen, um ein neues, inaktives Zertifikat für Ihre Cloud SQL for SQL Server-Instanz zu erstellen und es dann über das Azure-Portal in Microsoft Entra ID hochzuladen. Das hat keine Auswirkungen auf das aktuell aktive Zertifikat.
Aktivieren Sie das neue Zertifikat für die 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 beta sql ssl entraid-certs rotate --instance=INSTANCE_NAMEErsetzen Sie Folgendes:
- INSTANCE_NAME: Der Name der Instanz, die dem Zertifikat zugeordnet 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 gefahrlos aus Ihrer Microsoft Entra ID-App-Registrierung 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 ein Rollback muss das vorherige Zertifikat noch gültig sein und von Ihrer Microsoft Entra ID-App-Registrierung weiterhin als vertrauenswürdig eingestuft werden.
Mit den folgenden Befehlen wird das angegebene vorherige Zertifikat sofort auf Ihrer Cloud SQL for SQL Server-Instanz reaktiviert.
gcloud
gcloud beta sql ssl entraid-certs rollback --instance=INSTANCE_NAME
Ersetzen Sie Folgendes:
- INSTANCE_NAME: Der Name der Instanz, die dem Zertifikat zugeordnet ist, für das Sie ein Rollback durchführen 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 zum Ersetzen 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 zum Ersetzen 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 für die Instanz aktiviert haben, müssen Sie Ihre Microsoft Entra ID-Anmeldedaten erstellen.
Erstellen Sie die erste Microsoft Entra ID-Anmeldung.
Dieses erste Login, das 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 als dieser Nutzer eine Verbindung zur Datenbank herstellen.
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 lieber 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.
Nachdem Berechtigungen erteilt wurden, können mit dieser Anmeldung andere Microsoft Entra ID-Anmeldungen mit 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 auf Grundlage von Microsoft Entra ID-Logins zu erstellen oder Berechtigungen zu erteilen.
Weitere Informationen, einschließlich der richtigen Syntax zum Erstellen einer Anmeldung, 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 verwandte Instanzen.
Weitere Informationen finden Sie unter Registrieren einer Anwendung in Microsoft Entra ID.
Fehlerbehebung
In den folgenden Abschnitten finden Sie Informationen zur Behebung von Problemen, die bei der Verwaltung der Microsoft Entra ID-Integration auftreten können.
Probleme mit der Netzwerkverbindung bei Instanzen mit privater IP-Adresse
Bei der Einrichtung der Integration können einige der folgenden Probleme auftreten:
- Langsame Vorgänge zum Erstellen von Microsoft Entra ID-Anmeldedaten
- Microsoft Entra ID-Anmeldungen können nicht erstellt werden
- Verbindung zur Instanz mit Microsoft Entra ID-Authentifizierung nicht möglich
Führen Sie den folgenden Konnektivitätstest durch, 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 VM her, die Sie gerade erstellt haben. Führen Sie dann die folgenden Befehle aus, um die Erreichbarkeit zu testen. Diese Schritte können sowohl auf Linux- als auch auf Windows-basierten VMs ausgeführt werden:
curl -4iv login.microsoftonline.com curl -4iv graph.microsoft.com curl -4iv ocsp.digicert.com
Wenn Sie keinen dieser Endpunkte erreichen können, sei es aufgrund von Zeitüberschreitungen oder Fehlern bei der abgelehnten Verbindung, prüfen Sie Ihre Netzwerkkonfiguration auf Folgendes:
- Achten Sie bei Private Service Connect darauf, dass Cloud NAT richtig konfiguriert ist, um ausgehenden Internetzugriff zu ermöglichen.
- 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 ""
Um dieses Problem zu beheben, muss für diesen Microsoft Entra ID-Nutzer eine SQL Server-Anmeldung vorhanden sein.
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:
- Sie führen eine stufenweise Migration durch. Die Authentifizierungsautorität wird von Microsoft Active Directory zu Microsoft Entra ID verschoben. Dazu wird entweder Customer-Managed Active Directory (CMAD) oder Managed Service for Microsoft Active Directory verwendet.
- Verwendung einer Hybridumgebung Sowohl Microsoft Active Directory als auch Microsoft Entra ID sind gleichzeitig aktiviert.
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 ein Backup 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.
Geklonte Instanzen und Wiederherstellung in einer anderen Instanz
Die Microsoft Entra ID-Integration wird in den folgenden Szenarien nicht automatisch für die neue Instanz konfiguriert:
- Ein Klon der primären Instanz.
- Eine Sicherung, die in einer Instanz wiederhergestellt wurde, die nicht die primäre ist.
In solchen Fällen müssen Sie Microsoft Entra ID auf der neuen Instanz manuell aktivieren und das Zertifikat dann noch einmal in die Microsoft Entra ID-Anwendung hochladen. Diese Anforderung ist eine Sicherheitsmaßnahme, um zu verhindern, dass mehrere unabhängige Instanzen dieselbe Anwendungsidentität verwenden.
Beschränkungen
- Die Microsoft Entra ID-Authentifizierung wird nur in SQL Server 2022 unterstützt. Sie ist nicht in SQL Server 2017 oder SQL Server 2019 verfügbar.
- Wenn Sie eine Instanz klonen oder eine Sicherung in einer anderen Instanz wiederherstellen, wird die Microsoft Entra ID-Integration nicht automatisch in der neuen Instanz konfiguriert. Weitere Informationen finden Sie unter Sicherung und Wiederherstellung.
- Die Microsoft Entra ID-Authentifizierung wird für Hochverfügbarkeitsinstanzen, die mit einer öffentlichen IP-Adresse konfiguriert sind, nicht unterstützt.
- Die Microsoft Entra ID-Authentifizierung wird für primäre Instanzen, die für PSC aktiviert sind, und für die entsprechenden Lesereplikatinstanzen nicht unterstützt.
- Vermeiden Sie das Rotieren von Microsoft Entra ID-Zertifikaten auf primären Instanzen, an die Replikate angehängt sind. Wenn Sie das Zertifikat der primären Instanz rotieren, werden die Replikat-Zertifikate nicht aktualisiert.
- Die Microsoft Entra ID-Integration mit Cloud SQL for SQL Server kann mit der gcloud CLI oder der Cloud SQL Admin API konfiguriert werden. Die Integration kann nicht mit Terraform verwaltet werden.