Auf dieser Seite wird beschrieben, wie Sie ein vom Kunden verwaltetes Microsoft Active Directory (auch als vom Kunden verwaltetes AD (CMAD) bezeichnet) verwenden:
- Cloud SQL for SQL Server in CMAD einbinden
- Verbindung zu einer Instanz mit einem Active Directory-Nutzer (AD) herstellen.
Eine Cloud SQL-Instanz, die in CMAD eingebunden ist, unterstützt neben der SQL-Authentifizierung auch die Windows-Authentifizierung.
Hinweis
- Wählen Sie in der Google Cloud -Console Ihren Projektnamen aus.
- Die Abrechnung für Ihr Google Cloud -Projekt muss aktiviert sein. So bestätigen Sie die Abrechnung für Ihr Projekt.
- Installieren und initialisieren Sie die gcloud CLI.
- Sie müssen die Rolle "Cloud SQL-Administrator" in Ihrem Nutzerkonto haben. Rufen Sie die Seite „Identity and Access Management (IAM)“ auf.
- Prüfen Sie die Voraussetzungen für die Einbindung.
- Prüfen Sie, ob die Active Directory-Replikation ordnungsgemäß funktioniert. Wenn die Implementierung nicht ordnungsgemäß erfolgt, kann es zu Problemen bei der CMAD-Integration kommen.
Instanz mit der Windows-Authentifizierung erstellen
Sie können die Einbindung in CMAD während der Instanzerstellung vornehmen, indem Sie die Windows-Authentifizierung für die Instanz aktivieren. Zur Einbindung wählen Sie eine Domain aus, mit der diese Instanz verknüpft wird. Wenn die Verknüpfung mit einer Domain fehlschlägt, schlägt die Instanzerstellung fehl.
Lesen Sie sich zur Vorbereitung auf das Erstellen einer Instanz mit Windows-Authentifizierung die Tipps sowie die Einschränkungen und Alternativen durch.
Sie können zwar eine öffentliche IP-Adresse verwenden, die Cloud SQL-Instanz muss jedoch auch Zugriff auf eine private IP-Adresse haben.
Verwenden Sie eine der folgenden Optionen, um eine Instanz zu erstellen, die in CMAD eingebunden und daher für die Windows-Authentifizierung aktiviert ist. Informationen zum grundlegenden Befehl zum Erstellen einer Instanz finden Sie unter Instanzen erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um eine Instanz mit CMAD zu erstellen:
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --root-password=PASSWORD \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUD_OU,DC=DC1,DC=DC2" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2 \ --cpu=CPU \ --memory=MEMORY \ --network=NETWORK
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Cloud SQL for SQL Server-Instanz, die Sie erstellen möchten.
- DATABASE_VERSION: die Datenbankversion, die Sie verwenden möchten, z. B.
SQLSERVER_2019_STANDARD. - DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das Sie verwenden möchten.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben. - CPU: die CPU-Kapazität, die Sie der Instanz zuweisen möchten.
- MEMORY: die Größe des Arbeitsspeichers, den Sie der Instanz zuweisen möchten.
- NETWORK: Der Name des Netzwerks, mit dem Ihre Instanz verbunden wird, z. B.
projects/my-gcp-project-123/global/networks/my-production-vpc.
REST Version 1
Verwenden Sie zum Erstellen einer Instanz mit CMAD eine POST-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
Ersetzen Sie Folgendes:
- DATABASE_VERSION: die Datenbankversion, die Sie verwenden möchten, z. B.
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: der Name der Cloud SQL for SQL Server-Instanz, die Sie erstellen möchten.
- REGION: die Region, in der sich die Instanz befinden soll, z. B.
us-central1. - PASSWORD: das Passwort für die Instanz.
- MACHINE_TYPE: der Maschinentyp, den Sie für die Instanz verwenden möchten, z. B.
db-n1-standard-8. - NETWORK: Der Name des Netzwerks, mit dem Ihre Instanz verbunden wird, z. B.
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das Sie verwenden möchten.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"databaseVersion":"DATABASE_VERSION",
"name":"INSTANCE_NAME",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":{
"tier":"MACHINE-TYPE",
"ipConfiguration":{
"privateNetwork":"NETWORK"
},
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}
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_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Verwenden Sie zum Erstellen einer Instanz mit CMAD eine POST-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
Ersetzen Sie Folgendes:
- DATABASE_VERSION: die Datenbankversion, die Sie verwenden möchten, z. B.
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: der Name der Cloud SQL for SQL Server-Instanz, die Sie erstellen möchten.
- REGION: die Region, in der sich die Instanz befinden soll, z. B.
us-central1. - PASSWORD: das Passwort für die Instanz.
- MACHINE_TYPE: der Maschinentyp, den Sie für die Instanz verwenden möchten, z. B.
db-n1-standard-8. - NETWORK: Der Name des Netzwerks, mit dem Ihre Instanz verbunden wird, z. B.
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das Sie verwenden möchten.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"databaseVersion":"DATABASE_VERSION",
"name":"INSTANCE_NAME",
"region":"REGION",
"rootPassword":"PASSWORD",
"settings":{
"tier":"MACHINE-TYPE",
"ipConfiguration":{
"privateNetwork":"NETWORK"
},
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}
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_NAME",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_NAME",
"selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Instanz mit der Windows-Authentifizierung aktualisieren
Sie können die Domain einer vorhandenen Instanz aktualisieren, d. h. sie können sie ändern oder eine Domain hinzufügen.
Allgemeine Informationen zum Aktualisieren einer Instanz finden Sie unter Instanzen bearbeiten.
Wenn eine Instanz bereits mit einer CMAD-Domain verknüpft ist, wird die Instanz erst einmal aus dieser Domain entfernt, bevor sie mit der neuen Domain verknüpft wird. Wenn die Aktualisierung fehlschlägt, kann die Instanz nicht mehr mit einer Domain verknüpft werden.
gcloud
Im Folgenden finden Sie einen Beispielbefehl zum Aktualisieren einer vorhandenen Instanz. Mit dem Befehl wird eine Domain entweder hinzugefügt oder ersetzt. Übergeben Sie --active-directory-domain=DOMAIN an den Befehl:
gcloud sql instances patch INSTANCE_NAME \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Cloud SQL for SQL Server-Instanz, die Sie aktualisieren möchten.
- DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das mit der Instanz verknüpft ist.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
REST Version 1
Verwenden Sie zum Aktualisieren einer CMAD-Instanz eine PATCH-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das mit der Instanz verknüpft ist.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"settings":{
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}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/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Verwenden Sie zum Aktualisieren einer CMAD-Instanz eine PATCH-Anfrage mit der Methode users:insert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das mit der Instanz verknüpft ist.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"settings":{
"activeDirectoryConfig":{
"domain":"DOMAIN"
"mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
"organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
"admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
"dns_servers":"IP1,IP2"
}
}
}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/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Migration zwischen Managed Service for Microsoft Active Directory und CMAD
Verwenden Sie den folgenden gcloud CLI-Befehl, um eine Instanz von der Integration in Managed Microsoft AD zur Integration in CMAD zu migrieren:
gcloud sql instances patch INSTANCE_NAME \ --active-directory-domain=DOMAIN \ --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \ --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \ --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \ --active-directory-dns-servers=IP1,IP2
Ersetzen Sie Folgendes:
- INSTANCE_NAME: der Name der Cloud SQL for SQL Server-Instanz, die Sie ändern möchten.
- DOMAIN: der Domainname, den Sie verwenden möchten, z. B.
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: Gibt den Modus der Domain an. Wenn die Domain von Google erstellt wurde und Google gehört, geben Sie
MANAGED_ACTIVE_DIRECTORYein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben SieCUSTOMER_MANAGED_ACTIVE_DIRECTORYein. - CLOUD_OU: der Name der Organisationseinheit, die Sie verwenden möchten.
Beispiel:
CLOUDOU. Sie können beliebig viele Organisationseinheiten eingeben. - DC1: ist die erste Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
DOMAIN. Sie können beliebig viele Domainkomponenten eingeben. - DC2: ist die zweite Domainkomponente, die für den Distinguished Name der Organisationseinheit verwendet wird. Beispiel:
COM. Ein vollständiger Wert für das Flag--active-directory-organizational-unitkönnte so aussehen:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Sie können beliebig viele Domainkomponenten eingeben. - PROJECT_ID: die Projekt-ID, in der sich die Instanz befindet.
- SECRET_NAME: das Secret, das mit der Instanz verknüpft ist.
- IP1: die IP-Adresse des ersten DNS-Servers, den Sie verwenden möchten, z. B.
10.20.30.40. Sie können beliebig viele IP-Adressen eingeben. - IP2: die IP-Adresse des zweiten DNS-Servers, den Sie verwenden möchten, z. B.
20.30.40.50. Sie können beliebig viele IP-Adressen eingeben.
Verbindung zu einer Instanz mit einem Nutzer herstellen
Bei Cloud SQL for SQL Server ist der Standardnutzer sqlserver.
Nachdem Sie eine Instanz in CMAD eingebunden haben, können Sie mit dem Nutzer sqlserver eine Verbindung zur Instanz herstellen:
- Erstellen Sie so ein SQL Server-Login auf Basis eines Windows-Nutzers oder einer Windows-Gruppe:
CREATE LOGIN [domain\user_or_group] FROM WINDOWS
- Melden Sie sich mit dem DNS-Namen der Instanz über die Windows-Authentifizierung bei der Instanz an. Beispiele zur Angabe von DNS-Namen für Instanzen:
- Hier sehen Sie ein Beispiel für eine Verbindung über eine private IP-Adresse:
private.myinstance.us-central1.myproject.cloudsql.mydomain.com
- Hier sehen Sie ein Beispiel für eine Verbindung über eine öffentliche IP-Adresse:
public.myinstance.us-central1.myproject.cloudsql.mydomain.com
- Hier sehen Sie ein Beispiel für die Verbindung über den Cloud SQL Auth-Proxy:
proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
Weitere Informationen finden Sie unter Cloud SQL Auth-Proxy mit Windows-Authentifizierung verwenden.
- Hier sehen Sie ein Beispiel für eine Verbindung über eine private IP-Adresse:
Wenn Sie die Instanz-IP-Adresse verwenden, müssen Sie die Kerberos-Clients für die Unterstützung von IP-Hostnamen konfigurieren. Cloud SQL unterstützt die Anmeldung mit IP-Adressen von Domains, die über eine Vertrauensstellung verbunden sind, nicht.
Cloud SQL Auth-Proxy mit Windows-Authentifizierung verwenden
Sie können den Cloud SQL Auth-Proxy mit Ihrer CMAD-Integration verwenden.
Lesen Sie zuerst die folgenden Hinweise:
Schritte für die Windows-Authentifizierung
Informationen zum Starten des Cloud SQL Auth-Proxys finden Sie unter Cloud SQL Auth-Proxy starten.
Für die Windows-Authentifizierung müssen Sie den Cloud SQL Auth-Proxy auf Port 1433 ausführen. Verwenden Sie den folgenden Befehl, um einen vordefinierten Dienstprinzipalnamen (Service Principal Name, SPN) einer Cloud SQL Auth-Proxy-Adresse zuzuordnen:
Proxy.[instance].[location].[project].cloudsql.[domain]
Cloud SQL Auth-Proxy lokal ausführen
Wenn Sie den Cloud SQL Auth-Proxy lokal ausführen, ordnen Sie mit Ihrer Hostdatei Folgendes zu 127.0.0.1 zu:
Proxy.[instance].[location].[project].cloudsql.[domain]
Beispielsweise können Sie der Hostdatei Folgendes hinzufügen (z. B. zu c:\windows\system32\drivers\etc\hosts):
127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]
In diesem Beispiel könnten Sie den Cloud SQL Auth-Proxy mit diesem Befehl ausführen und auf 127.0.0.1:1433 verfügbar machen:
cloud-sql-proxy.exe --credentials-file credential.json project:name
Cloud SQL Auth-Proxy nicht lokal ausführen
Wenn Sie den Cloud SQL Auth-Proxy extern ausführen möchten, folgen Sie der Anleitung unter Cloud SQL Auth-Proxy lokal ausführen, aber verwenden Sie einen anderen Eintrag in der hosts-Datei.
Wenn z. B. ein nicht lokaler Host beispielsweise MyOtherHost lautet, können Sie der Hostdatei Folgendes hinzufügen:
127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]
Fehlerbehebung für NTLM-Fallback in Clients
Wenn Sie die Windows-Authentifizierung und eine Instanz-IP-Adresse verwenden, um sich bei einer Instanz anzumelden, müssen Sie einen Kerberos-Client für die Unterstützung von IP-Hostnamen konfigurieren.
Cloud SQL unterstützt die NTLM-Authentifizierung nicht. Es kann jedoch vorkommen, dass einige Kerberos-Clients versuchen, darauf zurückzugreifen. Wie in diesem Abschnitt erläutert, wird möglicherweise wegen eines NTLM-Fallback die folgende Fehlermeldung angezeigt, wenn Sie versuchen, eine Verbindung zu SQL Server Management Studio (SSMS) herzustellen:
NTLM besteht aus einer Reihe von Microsoft-Sicherheitsprotokollen für die Authentifizierung. Weitere Informationen finden Sie unter Gründe für NTLM-Fallback.
Überprüfung eines NTLM-Fallbacks für einen Windows-Client
Führen Sie die folgenden Schritte aus, um in einem Windows-Terminal zu prüfen, ob ein NTLM-Fallback einen Fehler verursacht hat:
- Melden Sie sich mit den lokalen Anmeldedaten an, die Sie verwenden möchten. Verwenden Sie keine
"Run as..."-Befehle. - Öffnen Sie die Eingabeaufforderung.
- Führen Sie
klist purgeaus. - Versuchen Sie in SSMS, mit Windows-Authentifizierung eine Verbindung zu SQL Server herzustellen.
- Führen Sie
klistaus und prüfen Sie, ob ein Ticket für den zurückgegebenen Fehler vorliegt. - Wenn kein solches Ticket vorhanden ist, ist wahrscheinlich ein NTLM-Fallback die Ursache für den Fehler.
- Wenn ein solches Ticket vorhanden ist, kontrollieren Sie, dass der SQL Server-Treiber nicht die NTLM-Authentifizierung erzwingt. Prüfen Sie außerdem, ob die NTLM-Authentifizierung über eine Gruppenrichtlinie erzwungen wird.
NTLM-Fallback für einen Linux-Client überprüfen
Führen Sie die Schritte in diesem Abschnitt aus, um unter Ubuntu 16.04 zu kontrollieren, dass ein NTLM-Fallback einen Fehler verursacht hat. Die Schritte sind ähnlich wie bei anderen Linux-Distributionen.
Kerberos-Authentifizierung einrichten
- Richten Sie einen Kerberos-Client ein:
sudo apt-get install krb5-user
- Wenn Sie zur Eingabe des Standardbereichs aufgefordert werden, geben Sie einen lokalen Domainnamen in Großbuchstaben ein.
- Führen Sie den folgenden Befehl aus, um die SQL Server-Befehlszeilentools zu installieren:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
Mit Windows-Authentifizierung verbinden
- Führen Sie das kinit-Tool so aus:
kinit
- Führen Sie Folgendes aus, um eine Verbindung mit der Windows-Authentifizierung herzustellen:
/opt/mssql-tools/bin/sqlcmd -S
- Führen Sie den Befehl „klist“ aus und prüfen Sie, ob ein Ticket speziell für die folgende zurückgegebene Nachricht ausgestellt wurde:
MSSQLSvc/:1433 @ domain
- Wenn das Ticket nicht ausgestellt wurde, deutet der vorherige Fehler wahrscheinlich auf ein Problem hin, das einen NTLM-Fallback verursacht.
Gründe für NTLM-Fallback
Der Fallback auf NTLM ist eine Fehlkonfiguration des Clients, die mit den folgenden Bedingungen zusammenhängen kann:
- Standardmäßig versucht Windows nicht, die Kerberos-Authentifizierung für einen Host zu verwenden, wenn der Hostname eine IP-Adresse ist. Wenn Sie die Kerberos-Authentifizierung für IP-Adressen aktivieren möchten, versuchen Sie es mit der in der Microsoft-Dokumentation beschriebenen Methode.
- Die Kerberos-Authentifizierung über externe Vertrauensstellungen funktioniert nicht. Verwenden Sie stattdessen Gesamtstruktur-Vertrauensstellungen.
- Für die Kerberos-Authentifizierung ist die Namenssuffix-Weiterleitung erforderlich, damit Dienste in einer anderen Gesamtstruktur gefunden werden können. Versuchen Sie es mit der Methode, die unter Vertrauensstellung zwischen zwei Domains einrichten beschrieben wird.
- Die Kerberos-Authentifizierung funktioniert nicht, wenn kein SPN für den Dienst registriert ist. Verwenden Sie nur von der Google Cloud Console abgerufene FQDNs oder IP-Adressen, um Verbindungen zur Windows-Authentifizierung herzustellen.
Windows-Anmeldung für lokale AD-Nutzer erstellen
Folgen Sie der CREATE LOGIN-Anleitung, um eine Windows-Anmeldung für einen lokalen Nutzer zu erstellen. Geben Sie beispielsweise einen Befehl wie den folgenden an:
CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
Tipps zur Verwendung von CMAD mit Cloud SQL
- Eine Instanz mit öffentlicher IP-Adresse wird unterstützt, sofern sie auch eine private IP-Adresse hat. Private IP-Adressen müssen für die Instanz aktiviert sein. Sie können dann über eine öffentliche IP-Adresse oder eine private IP-Adresse eine Verbindung zur Instanz herstellen, sofern beide verfügbar sind.
- Prüfen Sie vor der Erstellung einer Instanz, auch als Ersatzinstanz, die folgenden Punkte:
- Wenn die Windows-Authentifizierung von einer Domain, die über eine Vertrauensstellung verbunden ist, fehlschlägt, prüfen Sie, ob die Windows-Authentifizierung für einen Nutzer aus einer vom Kunden verwalteten Domain funktioniert. Wenn ja, gehen Sie so vor:
- Prüfen Sie, ob Sie einen DNS-Namen verwendet haben. IP-Adressen werden von Domains, die über eine Vertrauensstellung verbunden sind, nicht unterstützt.
- Prüfen Sie, ob Sie die Schritte unter Vertrauensstellung zwischen zwei Domains einrichten ausgeführt haben, einschließlich des Öffnens aller Firewallports.
- Validieren Sie die Vertrauensstellung.
- Prüfen Sie, ob die Richtung der Vertrauensstellung es Nutzern aus der Domain (die über eine Vertrauensstellung verbunden ist) ermöglicht, sich zu authentifizieren.
- Folgen Sie der Anleitung unter Nicht routingfähige Domain für die Verzeichnissynchronisierung vorbereiten.
- Prüfen Sie, ob die Vertrauensstellung ohne Cloud SQL for SQL Server funktioniert:
- Erstellen Sie eine Windows-VM.
- Verknüpfen Sie sie mit der CMAD-Domain.
- Versuchen Sie beispielsweise, Notepad als Nutzer aus der Domain auszuführen, die über eine Vertrauensstellung verbunden ist.
- Starten Sie die Client-VM neu und testen Sie die Windows-Authentifizierung noch einmal.
- Wenn Sie versuchen, eine SQL Server-Anmeldung zu erstellen, erhalten Sie möglicherweise die folgende Fehlermeldung:
Dies kann daran liegen, dass lokale Domaingruppen nicht unterstützt werden. Verwenden Sie gegebenenfalls stattdessen globale oder universelle Gruppen.
- Wenn SQL Server-Abfragen den folgenden Fehler ausgeben, beachten Sie, dass IP-Adressen für Nutzer aus Domains, die über eine Vertrauensstellung verbunden sind, nicht unterstützt werden:
Die folgenden Maßnahmen können das Problem beheben:
- Wenn Sie Nutzer über eine IP-Adresse aus einer verwalteten Domain verbinden möchten, folgen Sie der Anleitung in der Microsoft-Dokumentation.
- Verwenden Sie keine Proxys und verwenden Sie immer denselben DNS-Namen, um eine Verbindung zu Cloud SQL for SQL Server herzustellen, wie Sie den Namen in der Google Cloud Console sehen.
- Wenn eine Instanz anhaltende Probleme mit der Windows-Authentifizierung hat (unabhängig davon, ob die Instanz kürzlich aktualisiert wurde oder nicht), versuchen Sie, die Instanz aus der Domain zu entfernen und dann wieder hinzuzufügen. Verwenden Sie dazu das Aktualisierungsverfahren, um die Domain zu verlassen und dann wieder beizutreten. Dadurch werden keine vorhandenen Windows-authentifizierten Nutzer oder Anmeldungen entfernt, die in Ihren Datenbanken vorhanden sind. Allerdings führt das Entfernen der Windows-Authentifizierung zum Neustart einer Instanz.
- Verwenden Sie das Diagnosetool für vom Kunden verwaltetes Active Directory, um Probleme bei der Einrichtung von Active Directory mit Ihrer vom Kunden verwalteten Domain zu beheben.
Fehlerbehebung
In der folgenden Tabelle sind häufige Fehlermeldungen und Lösungsmöglichkeiten aufgeführt:
| Fehler | Das könnte das Problem sein | Lösungsvorschlag |
|---|---|---|
Per-product, per-project Service Account (P4 SA) not found for project. |
Der Name des Dienstkontos ist falsch. | Prüfen Sie auf der Seite Dienstkonten, ob Sie ein Dienstkonto für das richtige Nutzerprojekt erstellt haben. |
The operation completed but an update to Active Directory failed.
You may experience issues with Windows Authentication on this instance, please
see https://docs.cloud.google.com/sql/docs/sqlserver/configure-cmad for tips. |
Die erforderlichen Aktualisierungen konnten nicht auf der CMAD-Domain durchgeführt werden. | Wenn Probleme mit der Windows-Authentifizierung auftreten, können Sie versuchen, die CMAD-Domain zu verlassen und dann wieder beizutreten. Verwenden Sie dazu das Aktualisierungsverfahren, um die Domain zu verlassen und dann wieder beizutreten. Dadurch werden keine vorhandenen Windows-authentifizierten Nutzer oder Anmeldungen entfernt, die in Ihren Datenbanken vorhanden sind. Allerdings führt das Entfernen der Windows-Authentifizierung zum Neustart einer Instanz. |
This instance would need new network architecture to support Active
Directory. See https://docs.cloud.google.com/sql/docs/sqlserver/configure-cmad." |
Diese Instanz verwendet nicht die neue Netzwerkarchitektur. | Führen Sie ein Upgrade der Instanz auf die neue Netzwerkarchitektur durch. |
Admin credential secret name / Organizational unit / DNS Server
names is required or Invalid Admin credential secret name /
OrganizationalUnit / DNS Server names provided. |
Administratoranmeldedaten, Organisationseinheit und DNS-Server sind erforderliche Parameter. | Wiederholen Sie die Anfrage mit diesen Parametern. |
Integration failed due to insufficient permissions. The Service
Agent for this project must be granted the secretmanager.secrets.getIamPolicy
and secretmanager.secrets.setIamPolicy permissions on the provided admin
credential key in Secret Manager. |
Dem Dienst-Agent für dieses Projekt fehlen die erforderlichen Berechtigungen. | Erstellen Sie eine benutzerdefinierte Rolle mit den Berechtigungen secretmanager.secrets.getIamPolicy und secretmanager.secrets.setIamPolicy und weisen Sie sie dem Dienst-Agent für dieses Projekt zu. Weitere Informationen finden Sie unter Secret Manager-Rollen und -Berechtigungen. |
Nächste Schritte
- Übersicht über kundenverwaltetes Active Directory (CMAD)
- Diagnosetool für vom Kunden verwaltetes Active Directory verwenden