Accedere ad archivi dati e condivisioni file con l'autenticazione di Windows da pacchetti SSIS in Azure

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

È possibile usare autenticazione di Windows per accedere ad archivi dati, ad esempio SQL Server, condivisioni file, File di Azure e così via, da pacchetti SSIS in esecuzione in Azure-SSIS Integration Runtime (IR) in Azure Data Factory (ADF) e Azure Synapse. Gli archivi dati possono essere locali, ospitati in macchine virtuali di Azure o in esecuzione in Azure come servizi gestiti. Se si trovano in locale, è necessario aggiungere il runtime di integrazione Azure-SSIS a un Rete virtuale (Microsoft Azure Rete virtuale) connesso alla rete locale, vedere Aggiungere Azure-SSIS IR a un Rete virtuale di Microsoft Azure. Sono disponibili quattro metodi per accedere ad archivi dati con l'autenticazione di Windows da pacchetti SSIS in esecuzione in Azure-SSIS Integration Runtime:

Metodo di connessione Ambito effettivo Passaggio di configurazione Metodo di accesso nei pacchetti Numero di set di credenziali e risorse connesse Tipo di risorse connesse
Configurazione di un contesto di esecuzione a livello di attività Attività Esegui pacchetto SSIS Configurare la proprietà Autenticazione di Windows per impostare un contesto di "Esecuzione/Esegui come" durante l'esecuzione di pacchetti SSIS come attività Esegui pacchetto SSIS nelle pipeline di Azure Data Factory.

Per altre informazioni, vedere Eseguire un pacchetto SSIS tramite l'attività Esegui pacchetto SSIS in Azure Data Factory.
Accedere alle risorse direttamente nei pacchetti, ad esempio usare il percorso UNC per accedere alle condivisioni file o File di Azure: \\YourFileShareServerName\YourFolderName o\\YourAzureStorageAccountName.file.core.windows.net\YourFolderName È supportato un solo set di credenziali per tutte le risorse connesse - Condivisioni file in macchine virtuali locali/di Azure

- File di Azure, vedere Montare una condivisione file di Azure

- SQL Server in macchine virtuali locali/di Azure con l'autenticazione di Windows

- Altre risorse con l'autenticazione di Windows
Configurazione di un contesto di esecuzione a livello di catalogo Per Azure-SSIS IR, ma viene sottoposto a override durante la configurazione di un contesto di esecuzione a livello di attività (vedere sopra) Eseguire la stored procedure SSISDB catalog.set_execution_credential per configurare un contesto di "Esecuzione/Esegui come".

Per altre informazioni, vedere il resto di questo articolo.
Accedere alle risorse direttamente nei pacchetti, ad esempio usare il percorso UNC per accedere alle condivisioni file o File di Azure: \\YourFileShareServerName\YourFolderName o\\YourAzureStorageAccountName.file.core.windows.net\YourFolderName È supportato un solo set di credenziali per tutte le risorse connesse - Condivisioni file in macchine virtuali locali/di Azure

- File di Azure, vedere Montare una condivisione file di Azure

- SQL Server in macchine virtuali locali/di Azure con l'autenticazione di Windows

- Altre risorse con l'autenticazione di Windows
Rendere persistenti le credenziali tramite il comando cmdkey Per Azure-SSIS IR, ma viene sottoposto a override durante la configurazione di un contesto di esecuzione a livello di attività/catalogo (vedere sopra) Eseguire cmdkey il comando in uno script di installazione personalizzato (main.cmd) durante il provisioning di Azure-SSIS IR, ad esempio se si usano condivisioni file, File di Azure o SQL Server:

cmdkey /add:YourFileShareServerName /user:YourDomainName\YourUsername /pass:YourPassword,

cmdkey /add:YourAzureStorageAccountName.file.core.windows.net /user:azure\YourAzureStorageAccountName /pass:YourAccessKey o

cmdkey /add:YourSQLServerFullyQualifiedDomainNameOrIPAddress:YorSQLServerPort /user:YourDomainName\YourUsername /pass:YourPassword.

Per altre informazioni, vedere Customize setup for Azure-SSIS IR (Personalizzare l'installazione per il runtime di integrazione Azure-SSIS).
Accedere alle risorse direttamente nei pacchetti, ad esempio usare il percorso UNC per accedere alle condivisioni file o File di Azure: \\YourFileShareServerName\YourFolderName o\\YourAzureStorageAccountName.file.core.windows.net\YourFolderName Sono supportati più set di credenziali per risorse connesse diverse - Condivisioni file in macchine virtuali locali/di Azure

- File di Azure, vedere Montare una condivisione file di Azure

- SQL Server in macchine virtuali locali/di Azure con l'autenticazione di Windows

- Altre risorse con l'autenticazione di Windows
Montaggio di unità in fase di esecuzione del pacchetto (non persistente) Per pacchetto Eseguire il comando net use nell'attività Esegui processo aggiunta all'inizio del flusso di controllo nei pacchetti, ad esempio, net use D: \\YourFileShareServerName\YourFolderName Accedere alle condivisioni file tramite unità mappate Sono supportate più unità per condivisioni file diverse - Condivisioni file in macchine virtuali locali/di Azure

- File di Azure, vedere Montare una condivisione file di Azure

Avviso

Se non si usa uno dei metodi precedenti per accedere agli archivi dati con autenticazione di Windows, i pacchetti che dipendono da autenticazione di Windows non sono in grado di accedervi e non riescono in fase di esecuzione.

Il resto di questo articolo descrive come configurare il catalogo SSIS (SSISDB) ospitato in database SQL/Istanza gestita di SQL per eseguire pacchetti in Azure-SSIS IR che usano autenticazione di Windows per accedere agli archivi dati.

È possibile usare un solo set di credenziali

Quando si usa l'autenticazione di Windows in un pacchetto SSIS, è possibile usare un solo set di credenziali. Le credenziali del dominio specificate quando si esegue la procedura illustrata in questo articolo sono valide per tutte le esecuzioni di pacchetti interattive o pianificate in Azure-SSIS IR, finché non si modificano o rimuovono le credenziali. Se il pacchetto deve connettersi a più archivi dati con set di credenziali diversi, è consigliabile prendere in considerazione i metodi alternativi descritti in precedenza.

Specificare le credenziali di dominio per l'autenticazione di Windows

Per specificare le credenziali del dominio che consentono ai pacchetti che usano l'autenticazione di Windows di accedere ad archivi dati locali, eseguire le operazioni seguenti:

  1. Con SQL Server Management Studio (SSMS) o un altro strumento, connettersi a database SQL/Istanza gestita di SQL che ospita SSISDB. Per altre informazioni, vedere Connettersi a SSISDB in Azure.

  2. Con SSISDB come database corrente, aprire una finestra di query.

  3. Eseguire la stored procedure seguente e specificare le credenziali del dominio appropriate:

    catalog.set_execution_credential @user='<your user name>', @domain='<your domain name>', @password='<your password>'
    
  4. Eseguire i pacchetti SSIS. I pacchetti usano le credenziali fornite per accedere agli archivi dati in locale con autenticazione di Windows.

Visualizzare le credenziali del dominio

Per visualizzare le credenziali del dominio attive, eseguire queste operazioni:

  1. Con SSMS o un altro strumento, connettersi a database SQL/Istanza gestita di SQL che ospita SSISDB. Per altre informazioni, vedere Connettersi a SSISDB in Azure.

  2. Con SSISDB come database corrente, aprire una finestra di query.

  3. Eseguire la stored procedure seguente e controllare l'output:

    SELECT * 
    FROM catalog.master_properties
    WHERE property_name = 'EXECUTION_DOMAIN' OR property_name = 'EXECUTION_USER'
    

Cancellare le credenziali del dominio

Per cancellare e rimuovere le credenziali specificate come descritto in questo articolo, eseguire queste operazioni:

  1. Con SSMS o un altro strumento, connettersi a database SQL/Istanza gestita di SQL che ospita SSISDB. Per altre informazioni, vedere Connettersi a SSISDB in Azure.

  2. Con SSISDB come database corrente, aprire una finestra di query.

  3. Eseguire la stored procedure seguente:

    catalog.set_execution_credential @user='', @domain='', @password=''
    

Connettersi a SQL Server in locale

Per verificare se è possibile connettersi a SQL Server locale, eseguire le operazioni seguenti:

  1. Per eseguire questo test, cercare un computer non appartenente al dominio.

  2. Nel computer non appartenente al dominio eseguire il comando seguente per avviare SSMS con le credenziali del dominio che si vuole usare:

    runas.exe /netonly /user:<domain>\<username> SSMS.exe
    
  3. Da SSMS controllare se è possibile connettersi a SQL Server in locale.

Prerequisiti

Per accedere a Server SQL in locale da pacchetti in esecuzione in Azure, eseguire le operazioni seguenti:

  1. In Gestione configurazione SQL Server abilitare il protocollo TCP/IP.

  2. Consentire l'accesso attraverso Windows Firewall. Per altre informazioni, vedere Configure Windows Firewall to access SQL Server (Configurare Windows Firewall per accedere a SQL Server).

  3. Aggiungere il runtime di integrazione Azure-SSIS a un Rete virtuale di Microsoft Azure connesso a SQL Server in locale. Per altre informazioni, vedere Aggiungere Azure-SSIS IR a un Rete virtuale di Microsoft Azure.

  4. Usare la stored procedure catalog.set_execution_credential SSISDB per fornire le credenziali come descritto in questo articolo.

Connettersi a una condivisione file in locale

Per verificare se è possibile connettersi a una condivisione file locale, eseguire le operazioni seguenti:

  1. Per eseguire questo test, cercare un computer non appartenente al dominio.

  2. Nel computer non appartenente al dominio eseguire i comandi seguenti. Questi comandi aprono una finestra del prompt dei comandi con le credenziali del dominio che si vuole usare, quindi verificano la connettività alla condivisione file in locale recuperando un elenco di directory.

    runas.exe /netonly /user:<domain>\<username> cmd.exe
    dir \\fileshare
    
  3. Verificare se viene restituito l'elenco di directory per la condivisione file in locale.

Prerequisiti

Per accedere a una condivisione file in locale dai pacchetti in esecuzione in Azure, eseguire le operazioni seguenti:

  1. Consentire l'accesso attraverso Windows Firewall.

  2. Aggiungere il runtime di integrazione Azure-SSIS a un Rete virtuale di Microsoft Azure connesso alla condivisione file in locale. Per altre informazioni, vedere Aggiungere Azure-SSIS IR a un Rete virtuale di Microsoft Azure.

  3. Usare la stored procedure catalog.set_execution_credential SSISDB per fornire le credenziali come descritto in questo articolo.

Connettersi a una condivisione file in una macchina virtuale di Azure

Per accedere a una condivisione file nella macchina virtuale di Azure dai pacchetti in esecuzione in Azure, eseguire le operazioni seguenti:

  1. Con SSMS o un altro strumento, connettersi a database SQL/Istanza gestita di SQL che ospita SSISDB. Per altre informazioni, vedere Connettersi a SSISDB in Azure.

  2. Con SSISDB come database corrente, aprire una finestra di query.

  3. Eseguire la stored procedure seguente e specificare le credenziali del dominio appropriate:

    catalog.set_execution_credential @domain = N'.', @user = N'username of local account on Azure virtual machine', @password = N'password'
    

Connettersi a una condivisione file in File di Azure

Per altre informazioni sui file di Azure, vedere File di Azure.

Per accedere a una condivisione file in File di Azure dai pacchetti in esecuzione in Azure, eseguire le operazioni seguenti:

  1. Con SSMS o un altro strumento, connettersi a database SQL/Istanza gestita di SQL che ospita SSISDB. Per altre informazioni, vedere Connettersi a SSISDB in Azure.

  2. Con SSISDB come database corrente, aprire una finestra di query.

  3. Eseguire la stored procedure seguente e specificare le credenziali del dominio appropriate:

    catalog.set_execution_credential @domain = N'Azure', @user = N'<storage-account-name>', @password = N'<storage-account-key>'