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 di Windows oltre all'autenticazione SQL.
Prima di iniziare
- Nella console Google Cloud , seleziona il nome del progetto.
- Verifica che la fatturazione sia attivata 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 nel 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 di 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 unirsi. Se l'unione a un dominio non va a buon fine, la creazione dell'istanza non riesce.
In preparazione alla creazione di un'istanza con l'autenticazione Windows, consulta i suggerimenti e le limitazioni e alternative.
Sebbene tu possa 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 questo comando:
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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi. - 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 dell'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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
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 dell'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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
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 di 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 associata a un dominio CMAD, l'associazione dell'istanza a quel dominio viene annullata prima che venga associata al nuovo dominio. Se l'aggiornamento non va a buon fine, l'istanza potrebbe non essere più associata ad alcun 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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
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 è stato creato ed è di proprietà di Google, inserisci
MANAGED_ACTIVE_DIRECTORY. Se il dominio è stato creato ed è 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 vuoi. - DC1: il primo componente di dominio utilizzato per il nome distinto dell'unità organizzativa. Ad esempio,
DOMAIN. Puoi inserire tutti i componenti di dominio necessari. - DC2: il secondo componente di 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 di 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 che vuoi. - IP2: l'indirizzo IP del secondo server DNS che vuoi utilizzare, ad esempio
20.30.40.50. Puoi inserire tutti gli indirizzi IP che vuoi.
Connettiti 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, come segue:
CREATE LOGIN [domain\user_or_group] FROM WINDOWS
- Accedi all'istanza utilizzando l'autenticazione di Windows con il nome DNS dell'istanza. Ecco alcuni esempi di nomi DNS delle istanze da specificare:
- 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 saperne di più, consulta Utilizza il proxy di autenticazione Cloud SQL con l'autenticazione di Windows.
- Mostra un esempio di connessione tramite un IP privato:
Se utilizzi l'indirizzo IP dell'istanza, devi configurare i client Kerberos in modo che supportino i nomi host IP. Cloud SQL non supporta l'accesso utilizzando indirizzi IP di domini connessi tramite una relazione di trust.
Utilizza 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:
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 Cloud SQL Auth Proxy 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 Cloud SQL Auth Proxy in locale, utilizza il file hosts per mappare quanto segue a 127.0.0.1:
Proxy.[instance].[location].[project].cloudsql.[domain]
Ad esempio, puoi 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 Cloud SQL Auth Proxy utilizzando questo comando e renderlo disponibile su 127.0.0.1:1433:
cloud-sql-proxy.exe --credentials-file credential.json project:name
Esegui il Cloud SQL Auth Proxy non localmente
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.
In particolare, 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 di 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 provare a utilizzarla come alternativa. 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:
NTLM è un insieme di protocolli di sicurezza Microsoft per l'autenticazione. Per saperne di più, consulta Motivi del fallback NTLM.
Verifica di un fallback NTLM per un client Windows
Per verificare che un errore sia stato causato da un fallback NTLM, completa i seguenti passaggi da un terminale Windows:
- 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 controlla se è stato emesso un ticket per l'errore restituito, - Se non esiste un ticket di questo tipo, la causa dell'errore è probabilmente il fallback NTLM.
- Se esiste un ticket di questo tipo, verifica che il driver SQL Server non applichi l'autenticazione NTLM. Inoltre, controlla se l'autenticazione NTLM viene applicata tramite un criterio di gruppo.
Verifica il fallback NTLM per un client Linux
Per verificare se un errore è stato causato da un fallback NTLM, segui i passaggi riportati in questa sezione, a partire da Ubuntu 16.04. 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 richiesto 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 specifico per il seguente messaggio restituito:
MSSQLSvc/:1433 @ domain
- Se il ticket non è stato emesso, l'errore precedente probabilmente indica un problema che causa il fallback NTLM.
Motivi del fallback NTLM
Il fallback a NTLM è un errore di configurazione del client che può essere associato alle seguenti condizioni:
- Per impostazione predefinita, Windows non tenta l'autenticazione Kerberos per un host se il nome host è un indirizzo IP. Per attivare l'autenticazione Kerberos per gli indirizzi IP, prova il metodo descritto nella documentazione di Microsoft.
- L'autenticazione Kerberos su trust esterni non funziona. Utilizza invece i trust tra foreste.
- L'autenticazione Kerberos richiede il routing del suffisso del nome per consentire la ricerca di servizi in un'altra foresta. Prova il metodo descritto in Configura una relazione di trust tra due domini.
- L'autenticazione Kerberos non funziona se non è registrato un SPN per il servizio. Utilizza solo i nomi di dominio completi o gli indirizzi IP che ottieni dalla console Google Cloud per connetterti con l'autenticazione di Windows.
Crea un accesso Windows per gli utenti AD on-premise
Segui le istruzioni di CREATE LOGIN 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
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. Puoi quindi scegliere di utilizzare un IP pubblico o un IP privato per connetterti all'istanza, a condizione che siano entrambi disponibili.
- Prima di creare un'istanza, anche come istanza sostitutiva, esamina quanto segue:
- Se l'autenticazione di Windows non riesce da un dominio connesso tramite una relazione di trust, verifica che l'autenticazione di 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 utilizzando una relazione di trust.
- Assicurati di aver completato i passaggi descritti in Configura una relazione di trust tra due domini, inclusa l'apertura di tutte le porte del firewall.
- Convalida il trust.
- Verifica che la direzione del trust consenta agli utenti del dominio (connesso tramite una relazione di trust) di autenticarsi.
- Segui i passaggi descritti in Preparare un dominio non instradabile per la sincronizzazione della directory.
- Verifica che il trust funzioni senza utilizzare Cloud SQL per SQL Server:
- Crea una VM Windows.
- Uniscila 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 nuovamente l'autenticazione di Windows.
- Potresti provare a creare un accesso a SQL Server, ma ricevere il seguente
errore:
Ciò potrebbe essere dovuto al fatto che i gruppi locali di dominio non sono supportati. Se applicabile, utilizza gruppi globali o universali.
- Se le query di 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 viene utilizzato un indirizzo IP per connettere gli utenti da un dominio gestito, segui le istruzioni riportate nella documentazione di Microsoft.
- Evita di utilizzare proxy e utilizza sempre lo stesso nome DNS per connetterti a Cloud SQL per SQL Server, come mostrato nella console Google Cloud .
- Se un'istanza presenta problemi persistenti con l'autenticazione di Windows (indipendentemente dal fatto che sia stata aggiornata di recente o meno), prova a disconnetterla dal dominio e poi a riconnetterla. Per farlo, utilizza la procedura di aggiornamento per annullare l'unione e poi unirti di nuovo al dominio. In questo modo non vengono rimossi gli utenti o gli accessi autenticati con Windows esistenti nei tuoi database. Tuttavia, la rimozione dell'autenticazione Windows causa il riavvio di un'istanza.
- Utilizza lo strumento di diagnostica di Active Directory gestito dal cliente per risolvere i problemi di configurazione di Active Directory con il tuo dominio gestito dal cliente.
Risoluzione dei problemi
La tabella seguente elenca i messaggi di errore più comuni e i modi per risolverli:
| Per questo errore… | Il problema potrebbe essere… | Prova… |
|---|---|---|
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://docs.cloud.google.com/sql/docs/sqlserver/configure-cmad for tips. |
Non è stato possibile eseguire gli aggiornamenti richiesti nel dominio CMAD. | Se riscontri problemi con l'autenticazione di Windows, puoi provare a scollegare il dominio CMAD e poi ricollegarlo. Per farlo, utilizza la procedura di aggiornamento per annullare l'unione e poi unirti di nuovo al dominio. In questo modo non vengono rimossi gli utenti o gli accessi autenticati con Windows esistenti nei database. Tuttavia, la rimozione dell'autenticazione di Windows causa il riavvio di un'istanza. |
This instance would need new network architecture to support Active
Directory. See https://docs.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 di amministratore, l'unità organizzativa e i server DNS sono parametri obbligatori. | Riprova la richiesta con questi parametri specificati. |
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. |
L'agente di servizio 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 Active Directory gestito dal cliente (CMAD)
- Utilizza lo strumento di diagnostica di Active Directory gestito dal cliente