Questa pagina descrive come utilizzare Microsoft Active Directory gestito dal cliente (noto anche come AD gestito dal cliente (CMAD)):
- Integra Cloud SQL per SQL Server con CMAD.
- Connettiti a un'istanza con un utente Active Directory (AD).
Un'istanza Cloud SQL integrata con CMAD supporta l'autenticazione Windows oltre all'autenticazione SQL.
Prima di iniziare
- Nella console Google Cloud , seleziona il nome del progetto.
- Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud . Scopri come verificare che la fatturazione sia abilitata per il tuo progetto.
- Installa e inizializza gcloud CLI.
- Assicurati di disporre del ruolo Amministratore Cloud SQL sul tuo account utente. Vai alla pagina Identity and Access Management (IAM).
- Esamina i prerequisiti per l'integrazione.
- Verifica che la replica di Active Directory funzioni correttamente. Se non viene implementata correttamente, potresti riscontrare problemi con l'integrazione di CMAD.
Crea un'istanza con l'autenticazione Windows
Puoi eseguire l'integrazione con CMAD durante la creazione dell'istanza, attivando l'autenticazione Windows per l'istanza. Per l'integrazione, scegli un dominio a cui l'istanza deve partecipare. Se l'aggiunta 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.
Anche se puoi scegliere di utilizzare un IP pubblico, l'istanza Cloud SQL deve avere accesso anche a un IP privato.
Utilizza una delle seguenti opzioni per creare un'istanza integrata con CMAD e, di conseguenza, abilitata per l'autenticazione Windows. Per informazioni sul comando di base per creare un'istanza, consulta Creazione di istanze.
gcloud
Per creare un'istanza con CMAD, esegui il comando seguente:
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
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza Cloud SQL per SQL Server che vuoi creare.
- DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio
SQLSERVER_2019_STANDARD. - DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui risiederà l'istanza.
- SECRET_NAME: è il secret che vuoi utilizzare.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari. - CPU: è la quantità di CPU che vuoi assegnare all'istanza.
- MEMORY: la quantità di memoria che vuoi assegnare all'istanza.
- NETWORK: è il nome della rete a cui verrà connessa l'istanza, ad esempio
projects/my-gcp-project-123/global/networks/my-production-vpc.
REST v1
Per creare un'istanza con CMAD, utilizza una richiesta POST con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
Sostituisci quanto segue:
- DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: il nome dell'istanza Cloud SQL per SQL Server che vuoi creare.
- REGION: la regione in cui vuoi che risieda l'istanza, ad esempio
us-central1. - PASSWORD: la password per l'istanza.
- MACHINE_TYPE: il tipo di macchina che vuoi utilizzare per l'istanza,
ad esempio
db-n1-standard-8. - NETWORK: è il nome della rete a cui verrà connessa l'istanza, ad esempio
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui risiederà l'istanza.
- SECRET_NAME: è il secret che vuoi utilizzare.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"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"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per creare un'istanza con CMAD, utilizza una richiesta POST con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
Sostituisci quanto segue:
- DATABASE_VERSION: la versione del database che vuoi utilizzare, ad esempio
SQLSERVER_2019_STANDARD. - INSTANCE_NAME: il nome dell'istanza Cloud SQL per SQL Server che vuoi creare.
- REGION: la regione in cui vuoi che risieda l'istanza, ad esempio
us-central1. - PASSWORD: la password per l'istanza.
- MACHINE_TYPE: il tipo di macchina che vuoi utilizzare per l'istanza,
ad esempio
db-n1-standard-8. - NETWORK: è il nome della rete a cui verrà connessa l'istanza, ad esempio
projects/my-gcp-project-123/global/networks/my-production-vpc. - DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui risiederà l'istanza.
- SECRET_NAME: è il secret che vuoi utilizzare.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"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"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
}
Aggiorna un'istanza con l'autenticazione Windows
Puoi aggiornare il dominio di un'istanza esistente, ad esempio modificando o aggiungendo un dominio.
Per informazioni generali sull'aggiornamento di un'istanza, consulta Modifica delle istanze.
Se un'istanza è attualmente unita a un dominio CMAD, inizialmente viene 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.
gcloud
Di seguito è riportato un comando di esempio per aggiornare un'istanza esistente. Il
comando aggiunge o sostituisce un dominio. Passa
--active-directory-domain=DOMAIN al comando, come segue:
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
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza Cloud SQL per SQL Server che vuoi aggiornare.
- DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui si trova l'istanza.
- SECRET_NAME: è il secret associato all'istanza.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
REST v1
Per aggiornare un'istanza CMAD, utilizza una richiesta PATCH con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui si trova l'istanza.
- SECRET_NAME: è il secret associato all'istanza.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"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"
}
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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
Per aggiornare un'istanza CMAD, utilizza una richiesta PATCH con il metodo users:insert.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui si trova l'istanza.
- SECRET_NAME: è il secret associato all'istanza.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"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"
}
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"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"
}
Migrazione tra Managed Service for Microsoft Active Directory e CMAD
Per eseguire la migrazione di un'istanza dall'integrazione con Managed Microsoft AD all'integrazione con CMAD, utilizza il seguente comando gcloud CLI:
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
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza Cloud SQL per SQL Server che vuoi modificare.
- DOMAIN: il nome di dominio che vuoi utilizzare, ad esempio
myaddomain.com. - CUSTOMER_MANAGED_ACTIVE_DIRECTORY: indica la modalità del
dominio. Se il dominio è creato e di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è creato e di proprietà dell'utente, inserisciCUSTOMER_MANAGED_ACTIVE_DIRECTORY. - CLOUD_OU: il nome dell'unità organizzativa che vuoi utilizzare.
Ad esempio,
CLOUDOU. Puoi inserire tutte le unità organizzative che ti servono. - DC1: è il primo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti del dominio necessari. - DC2: è il secondo componente del dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
COM. Un valore completo per il flag--active-directory-organizational-unitpotrebbe essere simile al seguente:"OU=CLOUDOU,DC=DOMAIN,DC=COM". Puoi inserire tutti i componenti del dominio necessari. - PROJECT_ID: è l'ID progetto in cui si trova l'istanza.
- SECRET_NAME: è il secret associato all'istanza.
- IP1: è l'indirizzo IP del primo server DNS che vuoi utilizzare, ad esempio
10.20.30.40. Puoi inserire tutti gli indirizzi IP necessari. - IP2: è l'indirizzo IP del secondo server DNS che vuoi utilizzare,
ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP necessari.
Connettersi a un'istanza con un utente
Per Cloud SQL per SQL Server, l'utente
predefinito è sqlserver.
Dopo aver integrato un'istanza con CMAD, puoi connetterti all'istanza con l'utente sqlserver, come segue:
- Crea un accesso SQL Server basato su un utente o un gruppo Windows, nel seguente modo:
CREATE LOGIN [domain\user_or_group] FROM WINDOWS
- Accedi all'istanza utilizzando l'autenticazione Windows con il nome DNS dell'istanza. Alcuni esempi di nomi DNS dell'istanza da specificare sono:
- Mostra un esempio di connessione tramite un IP privato:
private.myinstance.us-central1.myproject.cloudsql.mydomain.com
- Mostra un esempio di connessione tramite un IP pubblico:
public.myinstance.us-central1.myproject.cloudsql.mydomain.com
- Mostra un esempio di connessione tramite il proxy di autenticazione Cloud SQL:
proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
Per ulteriori informazioni, consulta Utilizzare il proxy di autenticazione Cloud SQL con l'autenticazione Windows.
- Mostra un esempio di connessione tramite un IP privato:
Se utilizzi l'indirizzo IP dell'istanza, devi configurare i client Kerberos per supportare i nomi host IP. Cloud SQL non supporta l'accesso utilizzando indirizzi IP di 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 CMAD.
Prima di iniziare, esamina quanto segue:
- Informazioni sul proxy di autenticazione Cloud SQL
- Connessione tramite il proxy di autenticazione Cloud SQL
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) predefinita a un indirizzo del proxy di autenticazione Cloud SQL, utilizza il seguente comando:
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 in locale
Per eseguire il proxy di autenticazione Cloud SQL esternamente, 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, puoi 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 eseguire il failover. Come descritto in questa sezione, se provi a connetterti con SQL Server Management Studio (SSMS) e si verifica il seguente messaggio di errore, una causa probabile è il fallback NTLM:
NTLM è un insieme di protocolli di sicurezza Microsoft per l'autenticazione. Per ulteriori informazioni, consulta Motivi del fallback di NTLM.
Verifica di un fallback NTLM per un client Windows
Da un terminale Windows, per verificare che un fallback NTLM abbia causato un errore, completa i seguenti passaggi:
- Accedi con le credenziali on-premise che vuoi utilizzare. Non utilizzare
i comandi
"Run as...". - Apri un prompt dei comandi.
- Esegui
klist purge. - Da SSMS, prova a connetterti a SQL Server con l'autenticazione di Windows.
- Esegui
kliste verifica se è stato emesso un ticket per l'errore restituito. - Se non esiste un ticket di questo tipo, il fallback NTLM è la probabile causa dell'errore.
- Se esiste un ticket di questo tipo, verifica che il driver SQL Server non imponga l'autenticazione NTLM. Inoltre, verifica se l'autenticazione NTLM è applicata tramite un criterio di gruppo.
Verifica il 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 in questa sezione. I passaggi sono simili a quelli per altre distribuzioni Linux.
Configura l'autenticazione Kerberos
- Configura un client Kerberos:
sudo apt-get install krb5-user
- Quando ti viene chiesto il realm predefinito, digita un nome di dominio on-premise utilizzando lettere maiuscole.
- 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
- Esegui lo strumento kinit come segue:
kinit
- Per connetterti con l'autenticazione di Windows, esegui questo comando:
/opt/mssql-tools/bin/sqlcmd -S
- Esegui il comando klist e controlla se è stato emesso un ticket specificamente
per il seguente messaggio restituito:
MSSQLSvc/:1433 @ domain
- Se il ticket non è stato emesso, l'errore precedente indica probabilmente un problema che causa il fallback di NTLM.
Motivi del fallback NTLM
Il fallback a 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 per gli indirizzi IP, prova il metodo descritto nella documentazione Microsoft.
- L'autenticazione Kerberos tramite trust esterni non funziona. Utilizza invece i trust tra foreste.
- L'autenticazione Kerberos richiede il routing del suffisso del nome per consentire la ricerca dei servizi in un'altra foresta. Prova il metodo descritto in Configurare una relazione di trust tra due domini.
- L'autenticazione Kerberos non funziona se non è registrato alcun SPN per il servizio. Utilizza solo FQDN o indirizzi IP ottenuti dalla console Google Cloud per connetterti con l'autenticazione di Windows.
Creare un accesso a Windows per gli utenti AD on-premise
Segui le istruzioni per CREATE LOGIN
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
Suggerimenti per l'utilizzo di CMAD con Cloud SQL
- È supportata un'istanza con IP pubblico, purché abbia anche un IP privato. L'IP privato deve essere abilitato per l'istanza. Poi, puoi scegliere di utilizzare un IP pubblico o un IP privato per connetterti all'istanza, a condizione che entrambi siano disponibili.
- Prima di creare un'istanza, anche come istanza di sostituzione, esamina quanto segue:
- 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 dal cliente. In questo caso, completa i seguenti passaggi:
- Verifica di aver utilizzato un nome DNS. Gli indirizzi IP non sono supportati dai domini connessi tramite una relazione di trust.
- Assicurati di aver completato i passaggi descritti in Configurare una relazione di trust tra due domini, inclusa l'apertura di tutte le porte firewall.
- Convalida l'attendibilità.
- Verifica che la direzione della relazione di trust consenta l'autenticazione degli utenti del dominio (connesso tramite una relazione di trust).
- Segui i passaggi descritti in Preparare un dominio non instradabile per la sincronizzazione della directory.
- Verifica che l'attendibilità funzioni senza utilizzare Cloud SQL per SQL Server:
- Crea una VM Windows.
- Uniscilo al dominio CMAD.
- Prova a eseguire, ad esempio, Blocco note come utente del dominio connesso tramite una relazione di trust.
- 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:
Ciò potrebbe essere dovuto al fatto che i gruppi locali del dominio non sono supportati. Se applicabile, utilizza invece gruppi globali o universali.
- Se le query SQL Server generano il seguente errore, tieni presente che gli indirizzi IP
non sono supportati per gli utenti di domini connessi tramite una relazione di trust:
Le seguenti azioni potrebbero risolvere il problema:
- Se un indirizzo IP viene utilizzato per connettere utenti di un dominio gestito, segui le istruzioni riportate nella documentazione Microsoft.
- 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 .
Se un'istanza ha problemi continui con l'autenticazione di Windows (indipendentemente
dal fatto che sia stata aggiornata di recente), prova a rimuoverla dal dominio
e poi a riaggiungerla. Per farlo, utilizza la
procedura di aggiornamento
per uscire dal dominio e poi rientrarvi. In questo modo non vengono rimossi utenti o accessi autenticati
di Windows esistenti nei tuoi database. Tuttavia,
la rimozione dell'autenticazione Windows causa il riavvio di un'istanza.
- Utilizza lo strumento di diagnostica AD per risolvere i problemi di configurazione di AD con il tuo dominio gestito dal cliente e le istanze Cloud SQL per SQL Server nella console Google Cloud . Salta i passaggi relativi a Managed Microsoft AD.
Risoluzione dei problemi
La seguente tabella elenca i messaggi di errore più comuni e i modi per risolverli:
| Per questo errore… | Il problema potrebbe essere... | Prova questo… |
|---|---|---|
Per-product, per-project Service Account (P4 SA) not found for project. |
Il nome del account di servizio non è corretto. | Nella pagina Account di servizio, assicurati di aver creato un service account per il progetto utente corretto. |
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. |
Non è stato possibile eseguire gli aggiornamenti richiesti sul dominio CMAD. | Se riscontri problemi con l'autenticazione di Windows, puoi provare a uscire dal dominio CMAD e poi rientrarvi. Per farlo, utilizza la procedura di aggiornamento per uscire dal dominio e poi rientrarvi. In questo modo non vengono rimossi utenti o accessi autenticati con Windows esistenti nei tuoi database. Tuttavia, la rimozione dell'autenticazione Windows causa il riavvio di un'istanza. |
This instance would need new network architecture to support Active
Directory. See https://cloud.google.com/sql/docs/sqlserver/configure-cmad." |
Questa istanza non utilizza la nuova architettura di rete. | Esegui l'upgrade dell'istanza alla nuova architettura di rete. |
Admin credential secret name / Organizational unit / DNS Server
names is required or Invalid Admin credential secret name /
OrganizationalUnit / DNS Server names provided. |
Le credenziali amministratore, l'unità organizzativa e i server DNS sono parametri obbligatori. | Riprova a inviare la richiesta specificando questi parametri. |
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. |
Il service agent per questo progetto non dispone delle autorizzazioni necessarie. | Crea un ruolo personalizzato con le autorizzazioni secretmanager.secrets.getIamPolicy
e secretmanager.secrets.setIamPolicy e assegnalo
all'agente di servizio per questo progetto. Per saperne di più, consulta
Ruoli e autorizzazioni di Secret Manager. |
Passaggi successivi
- Panoramica di Customer-managed Active Directory (CMAD)
- Utilizzare lo strumento di diagnostica di Active Directory