Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureAzure Synapse Analytics
Piattaforma di analisi (PDW)
Database SQL in Anteprima di Microsoft Fabric
sqlcmd supporta un'ampia gamma di modelli di autenticazione di Microsoft Entra, a seconda della versione installata.
Note
Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, la denominazione Azure AD è tuttora mantenuta in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici errore e cmdlet. All’interno di questo articolo i due nomi vengono utilizzati in modo intercambiabile.
Per scoprire quale variante e versione di sqlcmd è installata nel sistema, vedere Controllare la versione installata dell'utilità sqlcmd. Per informazioni su come ottenere sqlcmd, vedere Scaricare e installare l'utilità sqlcmd.
sqlcmd (Go) supporta più modelli di autenticazione di Microsoft Entra, basati sul pacchetto azidentity. L'implementazione si basa su un connettore Microsoft Entra nel driver go-sqlcmd.
Argomenti della riga di comando
Per usare l'autenticazione di Microsoft Entra, è possibile usare una delle due opzioni della riga di comando.
-G è (per lo più) compatibile con il relativo utilizzo in sqlcmd (ODBC). Se vengono forniti un nome utente e una password, l'autenticazione verrà eseguita tramite l'autenticazione con password di Microsoft Entra. Se viene specificato un nome utente, usa l'autenticazione interattiva di Microsoft Entra, che può visualizzare un Web browser. Se non viene fornito alcun nome utente né alcuna password, viene usato un valore DefaultAzureCredential, che tenta di eseguire l'autenticazione tramite vari meccanismi.
--authentication-method= consente di specificare uno dei tipi di autenticazione seguenti.
ActiveDirectoryDefault
- Per una panoramica dei tipi di autenticazione in uso, vedere Credenziali predefinite di Azure.
- Scegliere questo metodo se gli script di automazione del database sono destinati a essere eseguiti in ambienti di sviluppo locali e in una distribuzione di produzione in Azure. Nell'ambiente di sviluppo, puoi utilizzare un segreto client o un login CLI di Azure. Senza modificare lo script dall'ambiente di sviluppo, sarà possibile usare un'identità gestita o un segreto client nella distribuzione di produzione.
- L'impostazione delle variabili di ambiente
AZURE_TENANT_IDeAZURE_CLIENT_IDè necessaria perDefaultAzureCredentialper iniziare a controllare la configurazione dell'ambiente e cercare una delle variabili di ambiente aggiuntive seguenti per l'autenticazione:- L'impostazione della variabile di ambiente
AZURE_CLIENT_SECRETconfiguraDefaultAzureCredentialaffinché scelgaClientSecretCredential. - L'impostazione della variabile di ambiente
AZURE_CLIENT_CERTIFICATE_PATHconfiguraDefaultAzureCredentiala scegliereClientCertificateCredentialseAZURE_CLIENT_SECRETnon è impostato.
- L'impostazione della variabile di ambiente
- Impostare la variabile di ambiente AZURE_USERNAME configura
DefaultAzureCredentialper scegliereUsernamePasswordCredentialseAZURE_CLIENT_SECRETeAZURE_CLIENT_CERTIFICATE_PATHnon sono impostati.
ActiveDirectoryIntegrated
Questo metodo attualmente non è implementato e ripiega su ActiveDirectoryDefault.
ActiveDirectoryPassword
Questo metodo di autenticazione usa nome utente e password. Il metodo non funziona se è richiesta l'autenticazione a più fattori.
Specificare il nome utente e la password tramite le normali opzioni della riga di comando o le variabili di ambiente
SQLCMD.Impostare la variabile di ambiente
AZURE_TENANT_IDsull'ID tenant del server se non si usa il tenant predefinito dell'utente.
ActiveDirectoryInteractive
Questo metodo avvia un Web browser per autenticare l'utente.
ActiveDirectoryManagedIdentity
Usare questo metodo quando si esegue sqlcmd (Go) in una macchina virtuale di Azure con un'identità gestita assegnata dall'utente o dal sistema. Se si usa un'identità gestita assegnata dall'utente, impostare il nome utente sull'ID client dell'identità gestita. Se si usa un'identità assegnata dal sistema, lasciare vuoto il nome utente.
Questo esempio illustra come connettersi usando un'identità gestita assegnata dal servizio (SAMI):
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
Questo esempio illustra come connettersi con un'identità gestita assegnata dall'utente (UAMI) aggiungendo l'ID client dell'identità:
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Questo metodo autentica il nome utente fornito come ID del principal del servizio e la password come segreto client per il principal del servizio. Specificare un nome utente nel formato <application (client) ID>. Imposta la variabile SQLCMDPASSWORD sul segreto client. Se si usa un certificato anziché un segreto client, impostare la variabile di ambiente AZURE_CLIENT_CERTIFICATE_PATH sul percorso del file di certificato.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>
Variabili di ambiente per l'autenticazione di Microsoft Entra
Alcune impostazioni per l'autenticazione di Microsoft Entra non dispongono di input della riga di comando e alcune variabili di ambiente vengono usate direttamente dal pacchetto azidentity usato da sqlcmd (Go).
Tali variabili di ambiente possono essere impostate per configurare alcuni aspetti dell'autenticazione di Microsoft Entra e per ignorare i comportamenti predefiniti. Oltre alle variabili elencate in precedenza, le seguenti sono specifiche di sqlcmd (Go) e si applicano a più metodi.
SQLCMDCLIENTID
Impostare questa variabile di ambiente sull'identificatore di un'applicazione registrata in Microsoft Entra autorizzata a eseguire l'autenticazione nel database SQL di Azure. Si applica ai metodi ActiveDirectoryInteractive e ActiveDirectoryPassword.