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 Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Database SQL in Microsoft Fabric
L'utilità di programma di copia bulk (bcp) supporta diversi modelli di autenticazione con ID Entra di Microsoft quando ci si connette al database SQL di Azure, all'istanza gestita di SQL di Azure, al database SQL in Microsoft Fabric, ad Azure Synapse Analytics o a SQL Server 2022 (16.x) e versioni successive.
Per verificare se bcp installato supporta l'autenticazione di Microsoft Entra, esegui bcp --help e verifica che -G venga visualizzato nell'elenco degli argomenti disponibili.
Restrizioni della piattaforma
Non tutte le modalità di autenticazione sono disponibili in ogni piattaforma:
L'autenticazione interattiva di Microsoft Entra è supportata solo in Windows.
L'autenticazione integrata di Microsoft Entra in Linux e macOS richiede Microsoft ODBC Driver 18 per SQL Server (driver 17.6.1 o versione successiva se non è possibile passare al driver 18) e un ambiente Kerberos configurato correttamente.
L'autenticazione con un file di token di accesso (
-P <token_file>) è supportata solo in Linux e macOS.
Nome utente e password di Microsoft Entra
Fornire -G insieme -U (nome utente) e -P (password).
Nell'esempio seguente viene esportata la tabella bcptest dal database testdb in contoso.database.windows.net nel file c:\last\data1.dat. Sostituire <password> con una password valida.
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
Nell'esempio seguente vengono importati gli stessi dati:
bcp bcptest in "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
Integrato in Microsoft Entra
Specificare -G senza -U o -P. L'account Windows corrente (o l'identità Kerberos in Linux/macOS) deve essere federato con Microsoft Entra ID. Negli esempi seguenti sostituire <server> con il nome del server.
Esportazione:
bcp bcptest out "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Importazione:
bcp bcptest in "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Identità del servizio gestito di Microsoft Entra
Eseguire l'autenticazione come identità gestita assegnata dal sistema o assegnata dall'utente tramite un DSN configurato. Lo stesso approccio funziona sia per bcp in che per bcp out.
Importante
bcp è strettamente associato al driver. La versione principale di bcp deve corrispondere alla versione principale del driver con cui viene creato il DSN. Per determinare la versione di bcp , eseguire bcp -v.
Configurare un DSN tramite ODBC Data Source Administrator:
- Premere il tasto Windows sulla tastiera.
- Digitare
ODBCe selezionare la versione appropriata dell'amministratore origine dati ODBC. - Selezionare la scheda DSN utente o DSN di sistema .
- Selezionare Aggiungi e seguire le istruzioni.
- Quando viene richiesto un tipo di autenticazione, selezionare Autenticazione dell'identità del servizio gestita di Azure.
- Per una identità gestita assegnata all'utente, incollare l'ID dell'identità nella casella ID di accesso sulla scheda autenticazione.
- Continuare a seguire le istruzioni per completare la configurazione del DSN.
Per una procedura dettagliata completa, inclusa di screenshot, vedere Creazione e modifica di DSN nell'interfaccia utente.
Usare il -D flag per indicare che il valore passato a -S è un DSN. Gli interruttori -D e -S possono apparire in qualsiasi ordine nella riga di comando.
bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
Token di accesso di Microsoft Entra ID
Si applica solo a: Linux e macOS. Windows non è supportato.
bcp 17.8 e versioni successive in Linux e macOS possono eseguire l'autenticazione con un token di accesso. Gli esempi seguenti usano l'interfaccia della riga di comando di Azure per recuperare il token e scriverlo in un file temporaneo sicuro.
Importante
Il file del token deve essere UTF-16LE senza un BOM. Limitare le autorizzazioni per i file ed eliminare il file quando non è più necessario, come illustrato negli esempi seguenti.
Identità gestita assegnata dal sistema
Sostituire <server> con il nome del server.
Accedere con l'identità gestita:
az login --identityRecuperare il token, scriverlo in un file temporaneo sicuro ed eseguire bcp:
# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Identità gestita assegnata dall'utente
Accedere con l'identità gestita assegnata dall'utente. Sostituire
<client_id>con un valore valido per l'ambiente.az login --identity --username <client_id>Recuperare il token, scriverlo in un file temporaneo sicuro ed eseguire bcp. Sostituire
<server>con un valore valido per il tuo ambiente.# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Microsoft Entra interactive
Si applica solo a: Solo Windows. Linux e macOS non sono supportati.
L'autenticazione interattiva di Microsoft Entra usa una finestra di dialogo per l'autenticazione e supporta l'autenticazione a più fattori (MFA). L'autenticazione interattiva richiede bcpversione 15.0.1000.34 o successiva e ODBC Driver 18 per SQL Server (o driver 17.2 o versione successiva).
Fornire -G solo con -U (nome utente). Non includere -P.
bcp richiede la password (o per gli account con MFA abilitata, completa il flusso MFA configurato).
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com
Per un utente Microsoft Entra che utilizza un account Windows da un dominio federato, includere il dominio nel nome utente (ad esempio, joe@contoso.com):
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U joe@contoso.com
Se gli utenti guest in un tenant di Microsoft Entra fanno parte di un gruppo con autorizzazioni di database nel database SQL di Azure, usare l'alias utente guest (ad esempio, keith0@adventure-works.com).
Contenuti correlati
- utilità bcp
- Scaricare e installare l'utilità bcp
- Come usare l'utilità bcp
- Autenticazione Microsoft Entra per Azure SQL
- Autenticazione nel database SQL in Microsoft Fabric
Ottieni aiuto
- Idee per SQL: sono disponibili suggerimenti per migliorare SQL Server?
- Domande e risposte Microsoft (SQL Server)
- DBA Stack Exchange (tag sql-server): fare domande su SQL Server
- Stack Overflow (tag sql-server): risposte a domande sullo sviluppo di SQL
- Informazioni e condizioni di licenza di Microsoft SQL Server
- Opzioni di supporto per utenti aziendali
- Ulteriore assistenza e feedback su SQL Server
Contribuire alla documentazione di SQL
Sei a conoscenza che puoi modificare tu stesso il contenuto SQL? In tal caso, non solo contribuisci a migliorare la documentazione, ma vieni anche riconosciuto come collaboratore della pagina.
Per altre informazioni, vedere Modifica la documentazione di Microsoft Learn.