Utilizzare Microsoft Active Directory gestito con Cloud SQL

Questa pagina descrive i modi per utilizzare Cloud SQL per:

  • Esegui l'integrazione con Managed Service for Microsoft Active Directory (chiamato anche Managed Microsoft AD).
  • Connettiti a un'istanza con un utente AD.

Un'istanza Cloud SQL integrata con Managed Microsoft AD supporta l'autenticazione Windows oltre all'autenticazione SQL.

Prima di iniziare

  1. Nella console Google Cloud , seleziona il nome del tuo progetto.
  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud . Scopri come verificare che la fatturazione sia attivata per il tuo progetto.
  3. Installa e inizializza gcloud CLI.
  4. Assicurati di disporre del ruolo Cloud SQL Admin nel tuo account utente. Vai alla pagina IAM.
  5. Esamina i prerequisiti per l'integrazione.

Crea un'istanza con l'autenticazione Windows

Puoi eseguire l'integrazione con Microsoft AD gestito durante la creazione dell'istanza, attivando l'autenticazione Windows per l'istanza. Per l'integrazione, scegli un dominio a cui unire l'istanza. Se l'unione a un dominio non riesce, la creazione dell'istanza non va a buon fine.

In preparazione alla creazione di un'istanza con autenticazione Windows, esamina i suggerimenti e le limitazioni e alternative.

È supportata un'istanza con IP pubblico, a condizione che abbia anche un IP privato; l'IP privato deve essere abilitato per l'istanza. Poi puoi scegliere di utilizzare l'IP pubblico o l'IP privato per connetterti all'istanza, purché entrambi siano disponibili.

Di seguito sono riportate le opzioni per creare un'istanza integrata con Managed Microsoft AD.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Crea istanza.
  3. Fai clic su Scegli SQL Server.
  4. Inserisci un nome per l'istanza. Non includere informazioni sensibili o che consentono l'identificazione personale nel nome dell'istanza, poiché è visibile esternamente. Non è necessario includere l'ID progetto nel nome dell'istanza. Questo viene creato automaticamente quando appropriato (ad esempio, nei file di log).
  5. Inserisci la password per l''sqlserver' utente.
  6. Imposta la regione per l'istanza. Consulta Best practice per l'integrazione con Microsoft AD gestito.
  7. Nella sezione Opzioni di configurazione, imposta le opzioni che preferisci (ma attendi il passaggio successivo per le opzioni di autenticazione).
  8. Fai clic su Authentication (Autenticazione). Il menu a discesa per l'aggiunta a un dominio Active Directory gestito elenca tutti i domini Microsoft AD gestiti aggiunti in precedenza nel tuo progetto.
  9. Dal menu a discesa per l'unione a un dominio Active Directory gestito, seleziona un dominio.
  10. Al termine della selezione delle opzioni di configurazione, fai clic su Crea. Cloud SQL crea automaticamente un service account per prodotto e per progetto. Se l'account non dispone del ruolo appropriato, ti viene chiesto di concedere il ruolo managedidentities.sqlintegrator.

gcloud

Il seguente comando crea un'istanza integrata con Managed Microsoft AD e quindi abilitata per l'autenticazione Windows. Per informazioni sul comando di base per la creazione di un'istanza, vedi Creazione di istanze.

Specifica un parametro di --active-directory-domain=DOMAIN nel comando gcloud. Ad esempio, specifica quanto segue: --active-directory-domain=ad.mydomain.com

Ecco un prototipo del comando gcloud:

gcloud beta sql instances create INSTANCE_NAME \
--database-version=EDITION \
--root-password=PASSWORD \
--active-directory-domain=DOMAIN\
--cpu=CPU \
--memory=MEMORY  \
--network=NETWORK

Terraform

Per creare un'istanza integrata con Microsoft AD gestito, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "instance_with_ad" {
  name             = "database-instance-name"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"

  depends_on = [google_service_networking_connection.private_vpc_connection]

  settings {
    tier = "db-custom-2-7680"
    active_directory_config {
      domain = "ad.domain.com"
    }
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.private_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST

Utilizzando l'API REST, puoi creare un'istanza integrata con Managed Microsoft AD. Specifica un dominio, ad esempio subdomain.mydomain.com, per il campo domain, come mostrato in questo prototipo di richiesta:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "ipConfiguration":{
         "privateNetwork":"network"
      },
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Aggiorna un'istanza con l'autenticazione Windows

Puoi aggiornare il dominio di un'istanza esistente, modificando o aggiungendo un dominio.

Per informazioni generali sull'aggiornamento di un'istanza, vedi Modifica delle istanze.

Se un'istanza è attualmente unita a un dominio Managed AD, l'istanza viene inizialmente separata da quel dominio prima di essere unita al nuovo dominio. Se l'aggiornamento non va a buon fine, l'istanza potrebbe non essere più unita a nessun dominio.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Modifica.
  4. Fai clic su Authentication (Autenticazione). Il menu a discesa Aggiungi un dominio Active Directory elenca i domini Microsoft AD gestiti che sono stati aggiunti in precedenza al tuo progetto.
  5. Dal menu a discesa per l'unione a un dominio Active Directory gestito, seleziona un nuovo dominio (di sostituzione) per la tua istanza.
  6. Fai clic su Salva per applicare le modifiche.

gcloud

Di seguito è riportato un prototipo di comando per aggiornare un'istanza esistente. Il comando aggiunge o sostituisce un dominio. Passa --active-directory-domain=DOMAIN al comando, come segue:

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=DOMAIN

REST

Utilizzando l'API REST, puoi aggiornare un'istanza esistente. Specifica un dominio, ad esempio subdomain.mydomain.com, nel campo domain. Di seguito è riportato un prototipo di richiesta:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Eseguire l'integrazione con un dominio AD gestito in un altro progetto

Puoi integrare la tua istanza con un dominio Microsoft AD gestito che si trova in un progetto diverso.

Durante la pianificazione dell'integrazione, esamina i vincoli.

Attiva peering tra domini

Prima di procedere con i passaggi descritti nelle sezioni seguenti, attiva il peering di dominio in modo che il tuo dominio sia disponibile per tutti i progetti necessari con istanze Cloud SQL per SQL Server.

Per un elenco dei domini di altri progetti già disponibili, puoi specificare quanto segue:

`gcloud active-directory peerings list`

Per ulteriori informazioni, vedi Elencare i peering di dominio.

Il comando gcloud active-directory peerings list richiede l'autorizzazione managedidentities.peerings.list. I seguenti ruoli dispongono di questa autorizzazione:

  • roles/managedidentities.peeringViewer
  • roles/managedidentities.viewer

Per ulteriori informazioni, consulta Controllo dell'accesso con IAM.

Crea un account di servizio

Ripeti questi passaggi per ogni progetto che contiene un'istanza Cloud SQL per SQL Server che intendi integrare.

  1. Consulta le informazioni di base per la creazione di service account.
  2. Utilizza un comando simile al seguente per creare un account di servizio. Specifica l'ID del progetto contenente le istanze Cloud SQL per SQL Server:

    gcloud beta services identity create --service=sqladmin.googleapis.com \
    --project=[PROJECT_ID]
  3. Concedi il ruolo managedidentities.sqlintegrator nel progetto con l'istanza Managed Microsoft AD. Specifica l'ID del progetto contenente l'istanza Managed Microsoft AD:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member=serviceAccount:SERVICE_ACCOUNT --role=roles/managedidentities.sqlintegrator

Abilitare l'autenticazione Windows tra progetti

Puoi eseguire l'integrazione con un dominio AD in un progetto diverso utilizzando i comandi gcloud o l'API REST di Cloud SQL. In entrambi i casi, devi specificare il nome completo della risorsa del dominio.

Specifica il nome della risorsa di dominio completo quando viene creata o aggiornata un'istanza Cloud SQL per SQL Server. Sono supportati due formati:

  • projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME
  • projects/PROJECT_NUMBER/locations/global/domains/DOMAIN_NAME

Ecco un esempio di utilizzo di gcloud:

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME

Se utilizzi un nome risorsa di dominio breve (ad esempio DOMAIN_NAME), il sistema presuppone che il tuo dominio Managed Microsoft AD si trovi nello stesso progetto delle tue istanze Cloud SQL per SQL Server.

Vincoli per l'integrazione con progetti diversi

Se esegui l'integrazione con un dominio AD gestito in un progetto diverso, si applicano i seguenti vincoli:

  • Fino a 10 reti con istanze Cloud SQL per SQL Server possono condividere un'istanza Managed Microsoft AD che si trova in un progetto diverso.
  • La console Google Cloud supporta solo le istanze di Managed Microsoft AD che si trovano nello stesso progetto. Anziché utilizzare la console Google Cloud , puoi eseguire l'integrazione utilizzando i comandigcloud o l'API REST di Cloud SQL.
  • Se vengono utilizzati i controlli di servizio VPC, le istanze Cloud SQL per SQL Server e un'istanza Managed Microsoft AD devono trovarsi nello stesso perimetro.

Inoltre, se un'istanza è integrata con un dominio AD gestito in un progetto diverso, il nome di dominio completo (FQDN) mostrato nella consoleGoogle Cloud potrebbe non essere preciso per quell'istanza. Nello specifico, nella pagina Panoramica per quell'istanza, in Connettiti a questa istanza, i nomi di dominio completi potrebbero contenere stringhe separate da barre, che puoi ignorare. Ad esempio, un nome di dominio completo impreciso potrebbe essere visualizzato come:

private.myinstance.myregion.myproject.projects/mydirectory/locations/global/domains/mydomain.com

In questo caso, l'FQDN corretto è:

private.myinstance.myregion.myproject.cloudsql.mydomain.com

Rimuovere l'autenticazione Windows da un'istanza

Puoi rimuovere l'autenticazione Windows e quindi un'integrazione di Managed Microsoft AD da un'istanza esistente.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Modifica.
  4. Fai clic su Authentication (Autenticazione). Il menu a discesa per l'aggiunta a un dominio Active Directory gestito elenca i domini Microsoft AD gestiti aggiunti in precedenza nel tuo progetto.
  5. Nel menu a discesa, seleziona Nessun dominio/Unisciti in seguito per la tua istanza.
  6. Leggi il messaggio sul riavvio dell'istanza e fai clic su Chiudi.
  7. Fai clic su Salva per applicare le modifiche.

gcloud

Per rimuovere un'istanza da un dominio, rimuovendo così l'autenticazione Windows, utilizza un valore vuoto per il dominio. ovvero, nel comando, utilizza un valore vuoto per il parametro --active-directory-domain, come segue:

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=

REST

Utilizzando l'API REST, puoi rimuovere un'istanza da un dominio. Specifica un valore vuoto nel campo domain, come segue:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":""
      }
   }
}

Connettersi a un'istanza con un utente

Per Cloud SQL per SQL Server, l'utente predefinito è sqlserver.

Dopo aver integrato un'istanza con Microsoft AD gestito, puoi connetterti all'istanza con l'utente sqlserver, nel seguente modo:

  1. Crea un accesso SQL Server basato su un utente o un gruppo Windows, nel seguente modo:

    CREATE LOGIN [domain\user_or_group] FROM WINDOWS
  2. Accedi all'istanza utilizzando l'autenticazione Windows con il nome DNS dell'istanza. Di seguito sono riportati alcuni esempi di nomi DNS dell'istanza da specificare:

    • Per connetterti tramite IP privato:

      private.myinstance.us-central1.myproject.cloudsql.mydomain.com

    • Per connetterti tramite IP pubblico:

      public.myinstance.us-central1.myproject.cloudsql.mydomain.com

    • Per connetterti tramite il proxy di autenticazione Cloud SQL (vedi anche di seguito):

      proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com

    Se utilizzi l'indirizzo IP dell'istanza, devi configurare i client Kerberos per supportare i nomi host IP. Cloud SQL non supporta gli accessi da domini connessi tramite una relazione di trust.

Utilizzare il proxy di autenticazione Cloud SQL con l'autenticazione Windows

Puoi utilizzare il proxy di autenticazione Cloud SQL con l'integrazione di Managed Microsoft AD.

Prima di iniziare, esamina:

Passaggi per l'autenticazione di Windows

Per informazioni di base sull'avvio del proxy di autenticazione Cloud SQL, consulta Avvia il proxy di autenticazione Cloud SQL.

Per l'autenticazione Windows, devi eseguire il proxy di autenticazione Cloud SQL sulla porta 1433. Per mappare una voce del nome entità servizio (SPN) predefinito a un indirizzo del proxy di autenticazione Cloud SQL, utilizza:

proxy.[instance].[location].[project].cloudsql.[domain]

Esegui il proxy di autenticazione Cloud SQL in locale

Se esegui il proxy di autenticazione Cloud SQL in locale, utilizza il file host per mappare quanto segue a 127.0.0.1:

proxy.[instance].[location].[project].cloudsql.[domain]

Ad esempio, potresti aggiungere quanto segue al file hosts (ad esempio, a c:\windows\system32\drivers\etc\hosts):

127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]

In questo esempio, puoi eseguire il proxy di autenticazione Cloud SQL utilizzando questo comando e renderlo disponibile su 127.0.0.1:1433:

cloud-sql-proxy.exe --credentials-file credential.json project:name

Esegui il proxy di autenticazione Cloud SQL non localmente

Per eseguire il proxy di autenticazione Cloud SQL non in locale, segui le istruzioni riportate in Esecuzione del proxy di autenticazione Cloud SQL in locale, ma utilizza una voce diversa nel file hosts.

Nello specifico, se un host non locale è, ad esempio, MyOtherHost, potresti aggiungere quanto segue al file hosts:

127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]

Risolvere i problemi relativi al fallback NTLM nei client

Se utilizzi l'autenticazione Windows e un indirizzo IP dell'istanza per accedere a un'istanza, devi configurare un client Kerberos per supportare i nomi host IP.

Cloud SQL non supporta l'autenticazione NTLM, ma alcuni client Kerberos potrebbero tentare di eseguirla. Come descritto in questa sezione, se provi a connetterti con SQL Server Management Studio (SSMS) e viene visualizzato il seguente messaggio di errore, una causa probabile è il fallback NTLM:

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

NTLM è un insieme di protocolli di sicurezza Microsoft per l'autenticazione. Vedi anche Motivi del fallback NTLM.

Verifica di un fallback NTLM per un client Windows

Da Windows, per verificare che un fallback NTLM abbia causato un errore:

  1. Accedi con le credenziali on-premise desiderate (non utilizzare "Esegui come…").
  2. Apri un prompt dei comandi.
  3. Esegui klist purge.
  4. Da SSMS, prova a connetterti a SQL Server con l'autenticazione di Windows.
  5. Esegui klist e controlla se è stato emesso un ticket per "MSSQLSvc/<address>:1433 @ domain".
  6. Se non esiste un ticket di questo tipo, il fallback NTLM è la probabile causa dell'errore.
  7. Se esiste un ticket, verifica che il driver SQL Server non imponga l'autenticazione NTLM. Controlla anche se l'autenticazione NTLM è applicata tramite Criteri di gruppo.

Verifica di un fallback NTLM per un client Linux

A partire da Ubuntu 16.04, per verificare che un fallback NTLM abbia causato un errore, segui i passaggi descritti in questa sezione. I passaggi sono simili a quelli per altre distribuzioni Linux.

Configura l'autenticazione Kerberos

  1. Configura un client Kerberos:

    sudo apt-get install krb5-user
    
  2. Quando ti viene chiesto il realm predefinito, digita un nome di dominio on-premise in lettere maiuscole.

  3. Esegui questo comando per installare gli strumenti a riga di comando di SQL Server:

    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
    

Connettiti con l'autenticazione di Windows

  1. Esegui lo strumento kinit nel seguente modo: kinit <user_account>
  2. Per connetterti con l'autenticazione di Windows, esegui: /opt/mssql-tools/bin/sqlcmd -S <address >>
  3. Esegui il comando klist e verifica se è stato emesso un ticket specificamente per: "MSSQLSvc/<address>:1433 @ domain"
  4. Se il ticket non è stato emesso, l'errore riportato sopra indica probabilmente un problema che causa il fallback NTLM.

Motivi del fallback NTLM

Il fallback su NTLM è una configurazione errata del client che può essere associata alle seguenti condizioni:

  • Per impostazione predefinita, Windows non tenta l'autenticazione Kerberos per un host se il nome host è un indirizzo IP. Per abilitare l'autenticazione Kerberos dal dominio gestito, prova il metodo descritto nella documentazione di Microsoft. Questo metodo non funziona con le credenziali on-premise quando devi utilizzare FQDN.
  • L'autenticazione Kerberos tramite trust esterni non funziona. Utilizza invece le trust della foresta, come descritto qui.
  • L'autenticazione Kerberos richiede il routing del suffisso del nome per consentire la ricerca di servizi in un'altra foresta. Prova il metodo descritto qui.
  • L'autenticazione Kerberos non funziona se non è registrato alcun SPN per il servizio. Utilizza solo FQDN o indirizzi IP ottenuti dalla Google Cloud console per connetterti con l'autenticazione di Windows.

Utenti AD on-premise: creare un accesso a Windows

Puoi utilizzare un utente AD on-premise per creare un accesso Windows a Cloud SQL per SQL Server.

Ad esempio, puoi connetterti utilizzando SQL Server Management Studio (SMSS) in esecuzione su una VM Windows ospitata nel VPC (Virtual Private Cloud) del tuo progetto Google Cloud .

Per l'autenticazione di Windows in questo contesto, Cloud SQL per SQL Server supporta solo il protocollo Kerberos. Per l'autenticazione Windows basata su Kerberos, il client deve risolvere il nome DNS di AD on-premise e di Managed Microsoft AD.

Configurare il trust unidirezionale o bidirezionale

Inizialmente, decidi se utilizzare una relazione di trust unidirezionale o bidirezionale.

Quindi, segui le istruzioni per stabilire l'attendibilità tra il dominio AD on-premise e il dominio Managed Microsoft AD.

Configura una VM Windows e crea un accesso Windows

Dopo aver stabilito la relazione di trust tra il dominio AD on-premise e il dominio Managed Microsoft AD, completa i passaggi seguenti. A titolo di esempio, questi passaggi utilizzano SQL Server Management Studio (SSMS), in esecuzione su una VM Windows, ospitata nel VPC del tuo progetto Google Cloud :

  1. Crea una VM Windows.
    • Crea una VM con una versione di Windows supportata da Microsoft Active Directory gestito.
    • Crea la VM nel progetto che ospita il tuo dominio Managed Microsoft AD. Se esiste un VPC condiviso che è una rete autorizzata, puoi creare la VM anche in uno qualsiasi dei suoi progetti di servizio.
    • Crea la VM su una rete VPC che sia una rete autorizzata del dominio Managed Microsoft AD e in cui sia configurato l'accesso privato ai servizi per Cloud SQL.
  2. Aggiungi la VM Windows al dominio Microsoft AD gestito.
  3. Installa SSMS sulla VM Windows.
  4. Risolvi il dominio on-premise nella rete VPC.
    • Dalla rete autorizzata su cui è in esecuzione la VM Windows, attiva la risoluzione DNS on-premise seguendo i passaggi indicati nella pagina Risolvere le query per gli oggetti Microsoft AD non gestiti. I passaggi descritti in quella pagina sono prerequisiti per il funzionamento dell'autenticazione Windows basata su Kerberos per gli utenti on-premise.
  5. Crea un accesso Windows per un utente on-premise.

    • Segui le istruzioni per CREA ACCESSO per creare un accesso Windows per un utente on-premise. Ad esempio, specifica un comando simile al seguente:
    CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
    
  6. Accedi all'istanza Cloud SQL per SQL Server utilizzando le istruzioni specifiche dell'applicazione per l'accesso di un utente on-premise. Ad esempio, se utilizzi SQL Server Management Studio, consulta queste istruzioni.

Se si verifica un problema durante l'accesso a un'istanza Cloud SQL per SQL Server, esegui queste verifiche:

  • Verifica le configurazioni firewall della rete on-premise e del VPC autorizzato dal progetto seguendo le istruzioni per creare una relazione di trust con un dominio on-premise.
  • Verifica il routing del suffisso del nome per la relazione di trust on-premise.
  • Verifica di poter eseguire queste operazioni di risoluzione DNS dalla VM Windows che esegue SSMS:
    • nslookup fqdn-for-managed-ad-domain
    • nslookup fqdn-for-on-premises-ad-domain
    • nslookup fqdn-for-cloud-sql-server-instance

Suggerimenti

  • È supportata un'istanza con IP pubblico, a condizione che abbia anche un IP privato; l'IP privato deve essere abilitato per l'istanza. Poi puoi scegliere di utilizzare l'IP pubblico o l'IP privato per connetterti all'istanza, purché entrambi siano disponibili.
  • Prima di creare un'istanza, anche come istanza di sostituzione, esamina quanto segue in base alle esigenze:
  • Terraform è supportato.
  • Se ricevi uno dei seguenti errori, verifica di aver soddisfatto tutti i prerequisiti per l'integrazione:
    • "L'account di servizio per prodotto per progetto non è stato trovato"
    • "Autorizzazione insufficiente per l'integrazione con il dominio Managed Service for Microsoft Active Directory"
  • Se ricevi l'errore "Dominio non trovato", verifica che il nome di dominio rispetti la distinzione tra maiuscole e minuscole.
  • Se l'autenticazione Windows non riesce da un dominio connesso tramite una relazione di trust, verifica che l'autenticazione Windows funzioni per un utente di un dominio gestito. In caso affermativo:
    1. Verifica di aver utilizzato un nome DNS. Gli indirizzi IP non sono supportati dai domini connessi tramite una relazione di trust.
    2. Assicurati di aver seguito tutti i passaggi per creare una relazione di trust con un dominio on-premise, inclusa l'apertura di tutte le porte firewall.
    3. Convalida il trust.
    4. Verifica che la direzione della relazione di trust consenta agli utenti del dominio (connesso tramite una relazione di trust) di autenticarsi nel dominio gestito.
    5. Verifica che il routing del suffisso del nome sia impostato sul dominio connesso tramite una relazione di trust.
    6. Verifica che l'attendibilità funzioni senza utilizzare Cloud SQL per SQL Server:
      1. Crea una VM Windows.
      2. Aggiungilo al dominio Managed Microsoft AD.
      3. Prova a eseguire, ad esempio, Blocco note come utente del dominio connesso tramite una relazione di trust.
    7. Riavvia la VM client e testa di nuovo l'autenticazione Windows.
  • Potresti provare a creare un accesso SQL Server, ma poi ricevere il seguente errore: "Impossibile trovare l'utente o il gruppo Windows NT domain\name. Controlla di nuovo il nome". Ciò potrebbe essere dovuto al fatto che i gruppi locali del dominio non sono supportati; se applicabile, utilizza invece gruppi globali o universali.
  • Quando vengono emesse da un utente di un dominio connesso tramite una relazione di trust, le query SQL Server possono generare il seguente errore: "Impossibile ottenere informazioni sul gruppo/utente Windows NT". Questo errore può verificarsi, ad esempio, se crei accessi da domini connessi tramite una relazione di trust. L'errore può verificarsi anche se concedi privilegi agli accessi da domini connessi tramite una relazione di trust. In questi casi, spesso il nuovo tentativo di esecuzione dell'operazione va a buon fine. Se il nuovo tentativo non va a buon fine, chiudi la connessione e aprine una nuova.
  • Se viene visualizzato l'errore "Impossibile ottenere informazioni sul gruppo/utente Windows NT", controlla la connettività di rete ai domini on-premise utilizzando il file di log active_directory.log disponibile in Cloud Logging per l'istanza Cloud SQL per SQL Server. Questo file contiene i seguenti dati di diagnostica relativi alle modifiche alla connettività del dominio on-premise:

    • Domini on-premise attendibili dall'istanza Cloud SQL per SQL Server. Ad esempio, il seguente log mostra la modifica da nessun dominio attendibile a due nuovi domini attendibili come nomi NetBIOS, ONPREM e CHILD:
      2023-06-12 20:55:09.975 Detected change in trusted onprem domains: Previously trusted onprem domains: []. Current trusted onprem domains: [ONPREM CHILD]
      Se un dominio on-premise non è elencato o è registrato come non attendibile, verifica che la relazione di trust esista con il dominio Managed AD e sia convalidata. Se esiste un trust unidirezionale tra il dominio Managed AD e il dominio on-premise, gli altri domini on-premise considerati attendibili dal dominio on-premise potrebbero non essere visibili.
    • Domini on-premise raggiungibili e non raggiungibili utilizzando un ping normale dall'istanza Cloud SQL per SQL Server. Ad esempio, il seguente log mostra la modifica da nessun dominio raggiungibile a due nuovi domini raggiungibili, onprem.com e child.onprem.com:
      2023-06-12 20:55:10.664 Detected change in reachable onprem domains: Previously reachable onprem domains: []. Current reachable onprem domains: [onprem.com child.onprem.com]
      Se un dominio non è elencato nei log di raggiungibilità, assicurati che sia registrato prima come dominio attendibile. In caso contrario, non viene verificata la raggiungibilità. Abbiamo sempre un peering VPC tra un progetto con istanze on-premise e Google Cloud progetti. Anche un solo peering VPC in più introduce una connessione di peering transitivo, che Cloud SQL non supporta. Ti consigliamo invece di utilizzare un tunnel VPN per connettere un dominio on-premise a Cloud SQL. Deve esistere al massimo una connessione di peering tra il progetto on-premise e il progetto Google Cloud con le istanze Cloud SQL per SQL Server.
    • Ping Microsoft chiamata di procedura remota (MSRPC) riusciti e non riusciti ai domini on-premise dall'istanza Cloud SQL per SQL Server. Ad esempio, il seguente log mostra la modifica da nessun dominio pingabile MSRPC a due nuovi domini pingabili MSRPC, ONPREM e CHILD:
      2023-06-12 20:55:10.664 Detected change in MSRPC pingable domains: Previously pingable onprem domains: []. Current pingable onprem domains: [ONPREM CHILD]
      I ping MSRPC sono inclusi come diagnostica aggiuntiva e potrebbero non funzionare su alcune configurazioni. Puoi comunque verificare la connettività del dominio on-premise tramite le prime due diagnostiche.
  • Se le query SQL Server generano l'errore "L'accesso proviene da un dominio non attendibile", tieni presente che gli indirizzi IP non sono supportati per gli utenti di domini connessi tramite una relazione di trust. Inoltre, le seguenti azioni potrebbero risolvere il problema:

    • Se un indirizzo IP viene utilizzato per connettere utenti di un dominio gestito, segui queste istruzioni.
    • Evita di utilizzare proxy e utilizza sempre lo stesso nome DNS per connetterti a Cloud SQL per SQL Server, come vedi il nome nella console Google Cloud .
    • Elimina i ticket Kerberos esistenti. L'errore riportato sopra potrebbe verificarsi se avevi un client che di recente era connesso a un'istanza Cloud SQL per SQL Server e l'istanza è stata arrestata e avviata. In alternativa, l'errore potrebbe verificarsi se l'autenticazione di Windows è stata disattivata e poi riattivata per l'istanza Cloud SQL per SQL Server. Se il client utilizza la cache delle credenziali di Windows, blocca e sblocca la workstation client o esegui klist purge.
  • Un tentativo di attivare l'autenticazione Windows potrebbe generare l'errore "Questa istanza richiederebbe una data di creazione più recente per supportare Managed Service for Microsoft Active Directory". Tieni presente quanto segue in merito a questo errore:

    • In Cloud SQL, se un'istanza Cloud SQL per SQL Server è stata creata entro il 12 marzo 2021, non può essere integrata con Managed Microsoft AD.
    • In alcuni casi, se crei un'istanza Cloud SQL per SQL Server e non attivi Managed Microsoft AD durante la creazione, potresti ricevere lo stesso errore. Dopo aver esaminato gli altri suggerimenti in questa sezione, crea una nuova istanza, attivando Managed Microsoft AD al momento della creazione dell'istanza.
  • Un tentativo di creare un'istanza Cloud SQL per SQL Server potrebbe generare l'errore "Questa istanza non supporta Managed Service for Microsoft Active Directory". Se ricevi questo errore, il progetto potrebbe non essere supportato. Prova a utilizzare un altro progetto.

  • Se un'istanza presenta problemi continui con l'autenticazione di Windows (indipendentemente dal fatto che sia stata aggiornata di recente), prova a uscire dal dominio Active Directory gestito e poi a rientrarvi. Per farlo, utilizza la procedura di aggiornamento per uscire dal dominio e poi rientrarvi. Questa operazione non rimuove gli utenti o gli accessi esistenti autenticati da Windows nei tuoi database. Tuttavia, la rimozione dell'autenticazione Windows comporta il riavvio di un'istanza.

  • Utilizza lo strumento di diagnostica AD per risolvere i problemi di configurazione di AD con il tuo dominio on-premise e le istanze Cloud SQL per SQL Server nella console Google Cloud .

Risoluzione dei problemi

Fai clic sui link nella tabella per i dettagli:

Per questo errore… Il problema potrebbe essere... Prova questa procedura:
Per-product, per-project service account not found. Il nome del account di servizio non è corretto. Nella pagina Account di servizio, assicurati di aver creato un account di servizio per il progetto utente corretto.
Insufficient permission to integrate with Managed Service for Microsoft Active Directory domain. Il ruolo managedidentities.sqlintegrator non è presente nel account di servizio. Dalla pagina IAM e amministrazione, aggiungi il ruolo managedidentities.sqlintegrator al tuo account di servizio.
Domain not found. Il dominio non esiste o è stato digitato in modo errato. Assicurati che il nome di dominio sia corretto. Fa distinzione tra maiuscole e minuscole.
The domain is busy with another operation. Please retry. Un'altra istanza Cloud SQL sta eseguendo un'operazione sullo stesso dominio Managed Active Directory. Riprova l'operazione. Se esegui un batch di aggiornamenti alle istanze Cloud SQL connesse allo stesso dominio, limita il numero di aggiornamenti eseguiti in parallelo.
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-ad for tips. Non è stato possibile eseguire gli aggiornamenti richiesti sul dominio Managed Active Directory. Se riscontri problemi con l'autenticazione di Windows, puoi provare a uscire dal dominio Active Directory gestito e poi rientrarvi. Per farlo, utilizza la procedura di aggiornamento per uscire dal dominio e poi rientrarvi. In questo modo non vengono rimossi gli utenti o gli accessi esistenti autenticati da Windows nei tuoi database. Tuttavia, la rimozione dell'autenticazione Windows comporta il riavvio di un'istanza.
This instance would need a more recent creation date to support Managed Service for Microsoft Active Directory. In Cloud SQL, se un'istanza Cloud SQL per SQL Server è stata creata entro il 12 marzo 2021, non può essere integrata con Managed Microsoft AD. Prova a eseguire l'operazione su un'istanza creata dopo il 12 marzo 2021.

Passaggi successivi

  • Conferma di aver esaminato completamente la pagina di panoramica, che include limitazioni e funzionalità non supportate. Questa pagina include anche link a ulteriore documentazione.