Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Quali credenziali utente utilizza Integration Services Catalog per eseguire i pacchetti?

Esecuzioni dei pacchetti:

Strumenti dati di SQL Server:

Credenziali utente con cui SQL Server Data Tools (SSDT) is operating verrà utilizzato per eseguire i pacchetti che vengono eseguiti all'interno di SSDT.

In Windows Start \ Tutti i programmi \ Microsoft SQL Server 2012, se fai clic su SQL Server Data Tools, verrà eseguito con le tue credenziali. Per eseguire con un account utente diverso, puoi premere Ctrl + Maiusc per selezionare Run as different user opzione.

Servizi del catalogo di integrazione:

Quando si fa clic con il pulsante destro del mouse su un pacchetto in Integration Services Catalog \ SSISDB \ <Folder name> \ Projects \ <Project name> \ Packages \ <Package name> e seleziona Execute... per eseguire un pacchetto. Il pacchetto verrà eseguito con le credenziali utilizzate per la connessione a SQL Server Management Studio.

Si noti che se si tenta di eseguire un pacchetto utilizzando l'autenticazione di SQL Server, verrà visualizzato il seguente messaggio di errore:

Dopo aver premuto Execute... , SQL Server gira un processo ISServerExec.exe , che avvia un Console Window Host processo:

ISServerExec.exe è un programma che esegue i pacchetti nel catalogo SSIS. In questo caso, viene avviato con lo stesso utente che esegue un pacchetto SSIS da SQL Server Management Studio.

Processo di SQL Server Agent senza proxy:

Quando si esegue un pacchetto SSIS da un processo di SQL Server Agent , il passaggio del processo per impostazione predefinita viene eseguito in SQL Server Agent Service Account . È possibile trovare l'account utente associato al servizio SQL Server Agent accedendo a Windows Start \ Administrative Tools \ Services , cerca il servizio SQL Server Agent (Your Instance Name ) e trova l'account utente elencato in Log On As

Processo di SQL Server Agent con proxy:

È anche possibile eseguire un processo di SQL Server Agent con credenziali diverse creando un account proxy. Quando le fasi del lavoro vengono eseguite con l'account proxy, il pacchetto nella fase del lavoro verrà eseguito con le credenziali specificate nell'account proxy.

Di seguito la risposta SO fornisce istruzioni dettagliate per creare un account proxy per eseguire i processi di SQL Server Agent.

Come faccio a creare un passaggio nel mio processo di SQL Server Agent che eseguirà il mio pacchetto SSIS?

Come verificare:

Pacchetto SSIS 2012 di esempio:

Ecco cosa ho fatto per verificare le affermazioni di cui sopra rispetto agli account utente utilizzati per le esecuzioni dei pacchetti.

  • Apri SQL Server Data Tools e crea un pacchetto SSIS 2012 denominato SO_15289442.dtsx .

  • Crea una variabile denominata ExecutionUser di tipo di dati String . Assegna l'espressione @[System::UserName] alla variabile. UserName è una variabile di sistema che fornisce le informazioni dell'utente che esegue il pacchetto.

  • Trascina e rilascia Invia attività di posta nel Flusso di dati scheda.

  • Crea una connessione SMTP e assegnala a SmtpConnection nella pagina Editor attività Invia posta - Posta.

  • Specificare il From e To indirizzi email.

  • Modifica il MessageSourceType a Variable .

  • Imposta MessageSource a User::ExecutionUser .

  • Fare clic con il pulsante destro del mouse sul pacchetto e selezionare Distribuisci per distribuire il progetto in Integration Services Catalog disponibile su un server a tua scelta.

Esecuzioni di pacchetti

  • Esegui il pacchetto all'interno di SSDT.

  • Apri SSDT usando Esegui come opzione utente diversa. Fornisci una credenziale diversa dalla tua ed esegui di nuovo il pacchetto.

  • Esegui il pacchetto da Integration Services Catalog.

  • Creare un processo di SQL Server Agent per eseguire il pacchetto utilizzando l'account di servizio di SQL Server Agent.

  • Crea un processo di SQL Server Agent per eseguire il pacchetto utilizzando un account proxy.

Per ogni esecuzione sopra menzionata, riceverai un'e-mail con l'account utente utilizzato per eseguire il pacchetto.

Il tuo problema:

Nel tuo caso, il pacchetto verrà eseguito con il tuo account (supponendo che tu stia utilizzando le tue credenziali per accedere a SSISDB ) se si fa clic con il pulsante destro del mouse e si seleziona Esegui dal catalogo di Integration Services. Assicurati che l'account abbia accesso al percorso di rete.

Se stai eseguendo il pacchetto da SQL Server Agent Job, l'account proxy è run as another user opzione che stai guardando.