Vom Kunden verwaltetes Microsoft Active Directory (CMAD) verwenden

Auf dieser Seite wird beschrieben, wie Sie 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 herstellen

Eine Cloud SQL-Instanz, die in CMAD eingebunden ist, unterstützt zusätzlich zur SQL-Authentifizierung die Windows-Authentifizierung.

Hinweise

Instanz mit der Windows-Authentifizierung erstellen

Sie können die Einbindung in CMAD während der Instanzerstellung vornehmen. Dadurch wird die Windows-Authentifizierung für die Instanz aktiviert. 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 vor dem Erstellen einer Instanz mit der Windows-Authentifizierung die Tipps sowie die Einschränkungen und Alternativen.

Sie können zwar eine öffentliche IP-Adresse verwenden, die Cloud SQL-Instanz muss aber 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 für das Erstellen einer Instanz finden Sie unter Instanzen erstellen.

gcloud

So erstellen Sie eine Instanz mit CMAD:

  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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 Anzahl der CPUs, die Sie der Instanz zuweisen möchten.
  • MEMORY: die Menge an Arbeitsspeicher, die 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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 sehen Sie ein Beispiel für einen Befehl zum Aktualisieren einer vorhandenen Instanz. Mit diesem Befehl wird eine Domain oder ersetzt. Übergeben Sie so --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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 der Instanz zugeordnet 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 eine PATCH-Anfrage mit der Methode users:insert, um eine CMAD-Instanz zu aktualisieren.

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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 der Instanz zugeordnet 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 eine PATCH-Anfrage mit der Methode users:insert, um eine CMAD-Instanz zu aktualisieren.

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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 der Instanz zugeordnet 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 mit Managed Microsoft AD zur Integration mit 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 der Inhaber ist, geben Sie MANAGED_ACTIVE_DIRECTORY ein. Wenn die Domain vom Nutzer erstellt wurde und ihm gehört, geben Sie CUSTOMER_MANAGED_ACTIVE_DIRECTORY ein.
  • 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 --active-directory-organizational-unit-Flag kö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 der Instanz zugeordnet 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:

  1. Erstellen Sie so ein SQL Server-Login auf Basis eines Windows-Nutzers oder einer Windows-Gruppe:
          CREATE LOGIN [domain\user_or_group] FROM WINDOWS
        
  2. Melden Sie sich über die Windows-Authentifizierung mit dem Instanz-DNS-Namen 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 eine 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.

Wenn Sie die Instanz-IP-Adresse verwenden, müssen Sie die Kerberos-Clients so konfigurieren, dass sie IP-Hostnamen unterstützen. Cloud SQL unterstützt die Anmeldung über 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-Einbindung verwenden.

Lesen Sie zuerst die folgenden Informationen:

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 einer Cloud SQL Auth-Proxy-Adresse einen vordefinierten Dienstprinzipalnamen (Service Principal Name, SPN) 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, verwenden Sie aber einen anderen Eintrag in der Hostdatei.

Wenn z. B. ein nicht lokaler Host „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:

Login failed. The login is from an untrusted domain and cannot be used with
Integrated authentication. (Microsoft SQL Server, Error: 18452)

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

So prüfen Sie über ein Windows-Terminal, ob ein NTLM-Fallback einen Fehler verursacht hat:

  1. Melden Sie sich mit den lokalen Anmeldedaten an, die Sie verwenden möchten. Verwenden Sie keine "Run as..."-Befehle.
  2. Öffnen Sie die Eingabeaufforderung.
  3. Führen Sie klist purge aus.
  4. Versuchen Sie in SSMS, mit Windows-Authentifizierung eine Verbindung zu SQL Server herzustellen.
  5. Führen Sie klist aus und prüfen Sie, ob ein Ticket für den zurückgegebenen Fehler vorliegt.
    MSSQLSvc/
    :1433 @ domain.
  6. Wenn kein solches Ticket vorhanden ist, ist wahrscheinlich ein NTLM-Fallback die Ursache für den Fehler.
  7. Wenn ein solches Ticket vorhanden ist, prüfen Sie, ob der SQL Server-Treiber die NTLM-Authentifizierung erzwingt. Prüfen Sie auch, 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

  1. Richten Sie einen Kerberos-Client ein:
          sudo apt-get install krb5-user
        
  2. Wenn Sie zur Eingabe des Standardbereichs aufgefordert werden, geben Sie einen lokalen Domainnamen in Großbuchstaben ein.
  3. 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

  1. Führen Sie das kinit-Tool so aus:
        kinit 
        
  2. Führen Sie Folgendes aus, um eine Verbindung mit der Windows-Authentifizierung herzustellen:
        /opt/mssql-tools/bin/sqlcmd -S 
  3. Führen Sie den Befehl „klist“ aus und prüfen Sie, ob ein Ticket speziell für die folgende zurückgegebene Meldung ausgestellt wurde:
        MSSQLSvc/
    :1433 @ domain
  4. Wenn das Ticket nicht ausgestellt wurde, weist der vorherige Fehler wahrscheinlich auf ein Problem hin, das einen NTLM-Fallback verursacht.

Gründe für NTLM-Fallback

Ein Fallback auf NTLM ist eine Client-Fehlkonfiguration, die mit den folgenden Merkmalen verknüpft sein kann:

  • Standardmäßig versucht Windows nicht, die Kerberos-Authentifizierung für einen Host zu verwenden, wenn der Hostname eine IP-Adresse ist. Mit der in der Microsoft-Dokumentation beschriebenen Methode können Sie die Kerberos-Authentifizierung für IP-Adressen aktivieren.
  • Die Kerberos-Authentifizierung über externe Vertrauensstellungen funktioniert nicht. Verwenden Sie stattdessen Gesamtstruktur-Vertrauensstellungen.
  • Für die Kerberos-Authentifizierung ist das Namenssuffix-Routing erforderlich, um das Auffinden von Diensten in einer anderen Gesamtstruktur zu ermöglichen. Probieren Sie die Methode aus, 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 FQDNs oder IP-Adressen, die Sie über die Google Cloud Console abrufen, 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. Anschließend können Sie eine öffentliche oder private IP-Adresse verwenden, um eine Verbindung zur Instanz herzustellen, sofern beide verfügbar sind.
  • Prüfen Sie vor der Erstellung einer Instanz, auch als Ersatzinstanz, die folgenden Punkte:
  • Wenn die Windows-Authentifizierung bei einer Domain fehlschlägt, die über eine Vertrauensstellung verbunden ist, prüfen Sie, ob die Windows-Authentifizierung für einen Nutzer aus einer vom Kunden verwalteten Domain möglich ist. Falls ja, gehen Sie so vor:
    1. Prüfen Sie, ob Sie einen DNS-Namen verwendet haben. IP-Adressen werden von Domains, die über eine Vertrauensstellung verbunden sind, nicht unterstützt.
    2. Achten Sie darauf, dass Sie die Schritte unter Vertrauensstellung zwischen zwei Domains einrichten ausgeführt haben, einschließlich das Öffnen aller Firewallports.
    3. Prüfen Sie die Vertrauensstellung.
    4. Prüfen Sie, ob die Richtung der Vertrauensstellung Nutzern aus der Domain (über eine Vertrauensstellung verbunden) die Authentifizierung ermöglicht.
    5. Folgen Sie der Anleitung unter Nicht routbare Domain für die Verzeichnissynchronisierung vorbereiten.
    6. Prüfen Sie, ob die Vertrauensstellung funktioniert, ohne Cloud SQL for SQL Server zu verwenden:
      1. Erstellen Sie eine Windows-VM.
      2. Verknüpfen Sie die Domain mit der CMAD-Domain.
      3. Versuchen Sie beispielsweise, Notepad als Nutzer aus der Domain auszuführen, die über eine Vertrauensstellung verbunden ist.
    7. Starten Sie die Client-VM neu und testen Sie die Windows-Authentifizierung noch einmal.
  • Sie können versuchen, eine SQL Server-Anmeldung zu erstellen, erhalten dann aber die folgende Fehlermeldung:
        Windows NT user or group domain\name not found. Check the name again.
        

    Das kann daran liegen, dass lokale Domaingruppen nicht unterstützt werden. Verwenden Sie gegebenenfalls globale oder universelle Gruppen.

  • Wenn SQL Server-Abfragen den folgenden Fehler ausgeben, werden IP-Adressen für Nutzer aus Domains, die über eine Vertrauensstellung verbunden sind, nicht unterstützt:
        The login is from an untrusted domain.
        

    Möglicherweise lässt sich das Problem durch folgende Aktionen beheben:

    • Wenn Sie Nutzer über eine IP-Adresse aus einer verwalteten Domain verbinden möchten, folgen Sie der Anleitung in der Microsoft-Dokumentation.
    • Vermeiden Sie die Verwendung von Proxys und verwenden Sie immer den gleichen DNS-Namen, um eine Verbindung zu Cloud SQL for SQL Server herzustellen, so wie er in der Google Cloud -Konsole angezeigt wird.
  • Wenn eine Instanz fortlaufend Probleme mit der Windows-Authentifizierung aufweist (unabhängig davon, ob die Instanz kürzlich aktualisiert wurde), heben Sie die Verknüpfung zur Domain auf und stellen sie dann wieder her. Verwenden Sie dazu das Aktualisierungsverfahren, um die Verknüpfung mit der Domain aufzuheben und dann wiederherzustellen. Dadurch werden keine vorhandenen Windows-authentifizierten Nutzer oder Anmeldungen in Ihren Datenbanken entfernt. Allerdings führt das Entfernen der Windows-Authentifizierung zum Neustart einer Instanz.
  • Verwenden Sie das AD-Diagnosetool, um Probleme bei der AD-Einrichtung mit Ihrer vom Kunden verwalteten Domain und Cloud SQL for SQL Server-Instanzen in der Google Cloud Console zu beheben. Überspringen Sie Schritte, die sich auf Managed Microsoft AD beziehen.

Fehlerbehebung

In der folgenden Tabelle sind häufige Fehlermeldungen und mögliche Lösungen 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 ein Dienstkonto für das richtige Nutzerprojekt vorhanden ist.
The operation completed but an update to Active Directory failed. You may experience issues with Windows Authentication on this instance, please see https://cloud.google.com/sql/docs/sqlserver/configure-cmad for tips. Die erforderlichen Aktualisierungen konnten nicht auf der CMAD-Domain ausgeführt werden. Wenn Probleme mit der Windows-Authentifizierung auftreten, können Sie versuchen, die Verknüpfung der CMAD-Domain aufzuheben und dann wieder herzustellen. Verwenden Sie dazu das Aktualisierungsverfahren, um die Verknüpfung mit der Domain aufzuheben und dann wiederherzustellen. Dadurch werden keine vorhandenen Windows-authentifizierten Nutzer oder Anmeldungen in Ihren Datenbanken entfernt. 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://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 Ihre 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