Übersicht: Managed Microsoft AD in Cloud SQL

Sie können Cloud SQL for SQL Server in Managed Service for Microsoft Active Directory (auch als Managed Microsoft AD bezeichnet) einbinden.

Diese Seite enthält Informationen, die vor Beginn der Einbindung zu prüfen sind. Nachdem Sie die folgenden Informationen, einschließlich der Einschränkungen, gelesen haben, lesen Sie die Informationen unter Cloud SQL mit Managed Microsoft AD verwenden.

Vorteile der Einbindung in Managed Microsoft AD

Authentifizierung, Autorisierung und mehr sind über Managed Microsoft AD verfügbar. Wenn Sie beispielsweise eine Instanz mit einer verwalteten Microsoft AD-Domain verknüpfen, können Sie sich über die Windows-Authentifizierung mit einer AD-basierten Identität anmelden.

Die Einbindung von Cloud SQL for SQL Server in eine AD-Domain hat den zusätzlichen Vorteil der Cloud-Einbindung in Ihre lokalen AD-Domains.

Voraussetzungen für die Einbindung

Sie können die Einbindung in Managed Microsoft AD vornehmen und dabei einer Instanz Unterstützung für die Windows-Authentifizierung hinzufügen. Bevor Sie die Einbindung ausführen, benötigen Sie jedoch Folgendes für Ihr Google Cloud-Projekt:

Dienstkonto erstellen und konfigurieren

Sie benötigen für jedes Projekt, das Sie in Managed Microsoft AD integrieren möchten, ein produkt- und projektbasiertes Dienstkonto. Verwenden Sie gcloud oder die Console, um das Konto auf Projektebene zu erstellen. Dem Dienstkonto pro Produkt und Projekt muss die Rolle managedidentities.sqlintegrator für das Projekt zugewiesen werden. Weitere Informationen finden Sie unter gcloud projects set-iam-policy.

Wenn Sie die Google Cloud Console verwenden, erstellt Cloud SQL automatisch ein Dienstkonto für Sie und fordert Sie auf, die Rolle managedidentities.sqlintegrator zu gewähren.

Führen Sie den folgenden Befehl aus, um ein Dienstkonto mit gcloud zu erstellen:

gcloud beta services identity create --service=sqladmin.googleapis.com \
             --project=[PROJECT]

Dieser Befehl gibt den Namen eines Dienstkontos im folgenden Format zurück:
service-[PROJECT_NUMBER]@gcp-sa-cloud-sql.iam.gserviceaccount.com

Hier ist ein Beispiel für einen Dienstkontonamen:
service-333445@gcp-sa-cloud-sql.iam.gserviceaccount.com

Sie benötigen Berechtigungen, um die erforderliche Berechtigung für die Integration zu erteilen. Informationen zu den erforderlichen Berechtigungen finden Sie unter Erforderliche Berechtigungen.

Führen Sie den folgenden Befehl aus, um die erforderliche Berechtigung für die Einbindung zu erteilen: Wenn sich Ihr Managed Microsoft AD in einem anderen Projekt befindet, sollte [AD_PROJECT_ID] das Konto sein, das die verwaltete Microsoft AD-Instanz enthält, während die [SQL_PROJECT_NUMBER] des Dienstkontos das Konto ist, das die SQL Server-Instanz enthält:

gcloud projects add-iam-policy-binding [AD_PROJECT_ID] \
--member=serviceAccount:service-[SQL_PROJECT_NUMBER]@gcp-sa-cloud-sql.iam.gserviceaccount.com \
--role=roles/managedidentities.sqlintegrator

Siehe auch gcloud beta services identity create.

Best Practices für die Einbindung in Managed Microsoft AD

Lesen Sie bei der Planung einer Einbindung Folgendes:

Eine SQL Server-Instanz und eine verwaltete AD-Instanz in derselben Region bieten die niedrigste Netzwerklatenz und die beste Leistung. Richten Sie daher nach Möglichkeit eine SQL Server-Instanz und eine AD-Instanz in derselben Region ein. Richten Sie eine primäre und eine Sicherungsregion ein, um für eine höhere Verfügbarkeit zu sorgen, egal ob Sie diese in derselben Region einrichten oder nicht.

Topologien für die Einbindung in Managed Microsoft AD

Cloud SQL for SQL Server unterstützt keine lokalen Domaingruppen. Sie haben jedoch folgende Möglichkeiten:

  • Globale Gruppen oder einzelne Nutzeranmeldungen direkt in SQL Server hinzufügen
  • Universelle Gruppen verwenden, wenn alle Gruppen und Nutzer derselben Gesamtstruktur angehören

Wenn lokale Domaingruppen unterstützt werden würden, können individuelle Nutzerkonten sowie globale und universelle Gruppen als untergeordnete Elemente unter einer lokalen Domaingruppe hinzugefügt werden, die den Zugriff auf SQL Server kontrolliert. Auf diese Weise könnten Sie eine lokale Domaingruppe als SQL Server-Anmeldung hinzufügen. In Cloud SQL for SQL Server können Sie ähnliche Funktionen aktivieren, wie in diesem Abschnitt beschrieben.

Option 1: Nutzerkonten und -gruppen als Anmeldungen zu SQL Server hinzufügen

Wenn Sie mehrere Domains in mehreren Gesamtstrukturen und mehrere globale Gruppen haben, können Sie alle einzelnen Nutzerkonten sowie die globalen und universellen Gruppen direkt als Anmeldungen zu SQL Server hinzufügen. Ein Beispiel für Option 1 finden Sie im folgenden Diagramm:

AD-Topologie, Option 1

Option 2: Universelle Gruppe in einer Ihrer Domains definieren

Wenn sich Ihre Domains in derselben Gesamtstruktur befinden, können Sie eine universelle Gruppe in einer Ihrer Domains definieren. Anschließend können Sie alle einzelnen Nutzerkonten sowie die globalen und universellen Gruppen als untergeordnete Elemente dieser definierten Gruppe hinzufügen und die definierte universelle Gruppe als SQL Server-Anmeldung hinzufügen. Ein Beispiel für Option 2 finden Sie im folgenden Diagramm:

AD-Topologie, Option 2.

Einschränkungen und Alternativen

Die folgenden Einschränkungen gelten bei der Einbindung in Managed Microsoft AD:

  • Lokale Domaingruppen werden nicht unterstützt. Sie können aber globale Gruppen oder individuelle Nutzeranmeldungen direkt in SQL Server hinzufügen. Alternativ können Sie universelle Gruppen verwenden, wenn alle Gruppen und Nutzer derselben Gesamtstruktur angehören.
  • Im Allgemeinen wird neuen Nutzern, die über die Google Cloud Console erstellt werden, die Rolle CustomerDbRootRole zugewiesen, die diese feste Datenbankrolle des SQL Server-Agent hat: SQLAgentUserRole. Nutzer, die direkt über SQL Server erstellt wurden, z. B. Managed Microsoft AD-Nutzer, können diese Rolle jedoch nicht erhalten oder den SQL Server-Agent verwenden, da die MSDB-Datenbank, für die diese Rolle gewährt werden muss, geschützt ist.
  • Einige eingeschränkte Vorgänge können zu folgendem Fehler führen: "Could not get information about Windows NT group/user". Ein Beispiel für diese Art von eingeschränktem Vorgang ist das Erstellen von Anmeldungen von Nutzern aus Domains, die über eine Vertrauensstellung verbunden sind. Ein weiteres Beispiel ist die Gewährung von Berechtigungen für Nutzer aus Domains, die über eine Vertrauensstellung verbunden sind. In diesen Fällen ist es oft erfolgreich, den Vorgang zu wiederholen. Wenn der wiederholte Versuch fehlschlägt, schließen Sie die Verbindung und öffnen Sie eine neue Verbindung.
  • Vollständig qualifizierte Domainnamen (FQDN) werden von SQL Server unter Windows nicht unterstützt. Verwenden Sie daher beim Erstellen von SQL Server-Anmeldungen Domainnamen (Kurznamen) anstelle von FQDNs. Wenn Ihr Domainname beispielsweise ad.mydomain.com lautet, erstellen Sie SQL Server-Anmeldungen für ad\user statt für ad.mydomain.com\user.
  • Verwenden Sie zum Zugriff auf SQL Server-Instanzen immer die FQDNs. Beispielsweise können Sie einen FQDN ähnlich wie private.myinstance.us-central1.myproject.cloudsql.mydomain.com verwenden. Netbios-Namen werden nicht unterstützt, auch keine Kurznamen, wenn DNS-Suffixe weggelassen werden.
  • SQL Server-Anmeldungen, die auf Active Directory-Nutzern und -Gruppen basieren, können nicht über die Google Cloud Console verwaltet werden.
  • Wenn in Cloud SQL eine SQL Server-Instanz am oder vor dem 12. März 2021 erstellt wurde, kann sie nicht in Managed Microsoft AD eingebunden werden.
  • Die Windows-Authentifizierung funktioniert nicht mit einer externen Vertrauensstellung. Der Fehler könnte folgende Meldung zur Folge haben: "Der Name des Zielhauptkontos ist falsch. SSPI-Kontext kann nicht generiert werden." Verwenden Sie außerdem laut Microsoft-Empfehlungen eine Gesamtstruktur-Vertrauensstellung statt einer externen Vertrauensstellung für die Kerberos-Authentifizierung.

Einbindung nicht unterstützt

Die folgenden Features werden derzeit bei einer Einbindung in Managed Microsoft AD nicht unterstützt:

  • Lokale Domaingruppen.
  • SQL Server-Anmeldungen von Nutzern aus Domains entfernen, die über eine Vertrauensstellung verbunden sind. Dazu können Sie einen Nutzer aus Ihrer verwalteten Domain oder die sqlserver-Anmeldung verwenden.
  • NTLM-Authentifizierung
  • Melden Sie sich mit einer IP-Adresse aus Domains an, die über eine Vertrauensstellung verbunden sind.
  • Instanzen mit langen Namen (mehr als 63 Zeichen).

Nächste Schritte