Pacchetto SSIS non viene eseguito quando viene chiamato da un passaggio di processo SQL Server Agent

Traduzione articoli Traduzione articoli
Identificativo articolo: 918760 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si chiama un pacchetto di Microsoft SQL Server 2005 Integration Services (SSIS) da un passaggio del processo di Agente SQL Server, il pacchetto SSIS non viene eseguito. Tuttavia, se non si modificano il pacchetto SSIS, verrÓ eseguito correttamente di fuori di SQL Server Agent.

Risoluzione

Per risolvere questo problema, utilizzare uno dei metodi descritti di seguito. Il metodo pi¨ appropriato dipende dall'ambiente e il motivo per cui il pacchetto non riuscito. Di seguito sono riportati i motivi per cui il pacchetto non Ŕ riuscito:
  • L'account utente utilizzato per eseguire il pacchetto in Agente SQL Server differisce dall'autore del pacchetto originale.
  • L'account utente non dispone delle autorizzazioni necessarie per le connessioni o per accedere alle risorse all'esterno del pacchetto SSIS.
Il pacchetto non venga eseguito nei seguenti scenari:
  • L'utente corrente non Ŕ in grado di decrittografare i segreti dal pacchetto. Questo scenario pu˛ verificarsi se il conto corrente o l'account di esecuzione Ŕ diverso dall'autore del pacchetto originale e impostazione della proprietÓ ProtectionLevel del pacchetto non Ŕ possibile decrittografare i segreti nel pacchetto dell'utente corrente.
  • Una connessione di SQL Server che utilizza la protezione integrata non riesce perchÚ l'utente corrente non dispone delle autorizzazioni necessarie.
  • Accesso ai file non riesce perchÚ l'utente corrente non dispone delle autorizzazioni necessarie per scrivere la condivisione di file che accede a connection manager. Ad esempio, questo scenario pu˛ verificarsi con i provider di log di testo che non utilizzano un account di accesso e una password. Questo scenario pu˛ verificarsi anche con tutte le attivitÓ che dipende la gestione connessione file, ad esempio un'attivitÓ di sistema del file SSIS.
  • Un registro di sistema pacchetto SSIS utilizza le chiavi di registro HKEY_CURRENT_USER. Le chiavi di registro HKEY_CURRENT_USER sono specifici dell'utente.
  • Un'attivitÓ o una gestione connessione richiede che l'account utente corrente disponga delle autorizzazioni corrette.
Metodo 1: Utilizzare un account proxy di Agente SQL Server

Metodo 2: Impostare la proprietÓ ProtectionLevel pacchetto SSIS ServerStorage

Metodo 3: Impostare la proprietÓ ProtectionLevel pacchetto SSIS EncryptSensitiveWithPassword

Il metodo 4: I file di configurazione del pacchetto SSIS utilizzare

Metodo 5: Creare un modello di pacchetto

Status

Questo comportamento Ŕ legato alla progettazione.

Informazioni avanzate

Procedura per riprodurre il problema

  1. Accedere come utente non fa parte del gruppo SQLServer2005SQLAgentUser. Ad esempio, Ŕ possibile creare un utente locale.
  2. Creare un pacchetto SSIS e quindi aggiungere un'attivitÓ ExecuteSQL. Utilizzare un gestore di connessione OLE DB per il file locale msdb utilizzando la seguente stringa: "Windows Authentication" -SQLSourceType: "Diretta Input" -SQLStatement: "sp_who"
  3. Eseguire il pacchetto per assicurarsi che funzioni correttamente.
  4. Si noti che la proprietÓ ProtectionLevel Ŕ impostata su EncryptSensitiveWithPassword.
  5. Creare un processo di Agente SQL Server e un passaggio di processo. Nel Esegui come elenco fare clic su Servizio di Agente SQL Server Per eseguire il passaggio di processo.
Il testo nella cronologia dei processi di Agente SQL Server vengono visualizzate informazioni analoghe alle seguenti:

Eseguito come utente: dominio\nomeutente. L'esecuzione del pacchetto non riuscita. Il passaggio non riuscito.

Decrittografare i segreti del pacchetto

L'impostazione predefinita per il pacchetto SSIS proprietÓ ProtectionLevel Ŕ EncryptSensitiveWithUserKey. Quando il pacchetto viene salvato, SSIS consente di crittografare solo le parti del pacchetto che contengono le proprietÓ contrassegnate come "riservate" come password, nomi utente e le stringhe di connessione. Pertanto, quando il pacchetto viene ricaricato, l'utente corrente deve soddisfare i requisiti di crittografia per le proprietÓ riservate da decrittografare. Tuttavia, l'utente corrente non dispone di soddisfare i requisiti di crittografia per caricare il pacchetto. Quando si esegue il pacchetto tramite un passaggio di processo di Agente SQL Server, l'account predefinito Ŕ l'account del servizio di Agente SQL Server. Questo account Ŕ molto probabile che un utente diverso dall'autore del pacchetto. Pertanto, il passaggio del processo di Agente SQL Server Ŕ possibile caricare e avviare l'esecuzione del passaggio del processo, ma il pacchetto non riesce perchÚ non riesce a completare una connessione. Ad esempio, il pacchetto Impossibile completare una connessione OLE DB o una connessione FTP. Il pacchetto non riesce perchÚ Impossibile decrittografare le credenziali necessarie per connettersi.

Importante. áConsiderare il processo di sviluppo e l'ambiente per determinare quali account sono necessari e utilizzati in ogni computer. L'impostazione di EncryptSensitiveWithUserKey della proprietÓ ProtectionLevel Ŕ un potente. Questa impostazione non dovrebbe essere scontata a causa di problemi di distribuzione a prima. ╚ possibile crittografare i pacchetti quando si Ŕ connessi all'account appropriato. Inoltre, Ŕ possibile utilizzare l'utilitÓ della riga di comando SSIS Dtutil.exe per modificare i livelli di protezione utilizzando un file. cmd e il sottosistema di comando di Agente SQL Server. Ad esempio, attenersi alla seguente procedura. PoichÚ Ŕ possibile utilizzare l'utilitÓ Dtutil.exe in cicli e file batch, Ŕ possibile attenersi alla seguente procedura per i diversi pacchetti nello stesso momento.
  1. Modificare il pacchetto che si desidera crittografare con una password.
  2. Utilizzare l'utilitÓ Dtutil.exe tramite un Sistema operativo (Exec cmd) Passaggio del processo di Agente SQL Server per modificare la proprietÓ ProtectionLevel per EncryptSensitiveWithUserKey. Questo processo implica la decrittografia del pacchetto utilizzando la password e quindi crittografare nuovamente il pacchetto. La chiave utente che viene utilizzata per crittografare il pacchetto Ŕ il passaggio di processo SQL Server Agent impostazione nelEsegui come elenco.

    Nota. PoichÚ la chiave include il nome utente e il nome del computer, l'effetto di spostare i pacchetti a un altro computer potrebbe essere limitato.

Assicurarsi che disponga di dettagliate informazioni sull'errore relative all'errore del pacchetto SSIS

Invece di basarsi sui dettagli limitati nella cronologia dei processi di Agente SQL Server, Ŕ possibile utilizzare SSIS registrazione per assicurarsi di disporre di informazioni sull'errore relative all'errore del pacchetto SSIS. ╚ inoltre possibile eseguire il pacchetto utilizzando il comando di sottosistema exec anzichÚ il comando di sottosistema SSIS.

Sulla registrazione di SSIS

Provider di registrazione e di log SSIS consentono di acquisire informazioni dettagliate sull'esecuzione del pacchetto e gli errori. Per impostazione predefinita, il pacchetto non registra le informazioni. ╚ necessario configurare il pacchetto per registrare le informazioni. Quando si configura il pacchetto per registrare le informazioni, verranno visualizzate informazioni dettagliate che Ŕ simile al seguente. In questo caso, si saprÓ che si tratta di un problema di autorizzazioni:

OnError, NomeDominio, nomedominio\nomeutente, FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1:51:59 PM, 28/4/2006:1:51: 59 PM,-1073573489, 0 x, Impossibile connettersi al server FTP con "FTP Connection Manager".

OnError, NomeDominio, nomedominio\nomeutente, Execute SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4:07:00 PM, 28/4/2006:4:07: 00 PM,-1073573396, 0 x, non Ŕ riuscito ad acquisire la connessione "user01.msdb". Connessione non sia configurato correttamente o non si disponga delle autorizzazioni appropriate per la connessione.

Sul comando di sottosistema exec e informazioni di output

Utilizzando l'approccio di comando di sottosistema exec, Ŕ possibile aggiungere opzioni di registrazione alla riga di comando SSIS per chiamare il file eseguibile della riga di comando SSIS Dtexec.exe nella console dettagliata. ╚ inoltre possibile utilizzare la funzionalitÓ avanzate del processo del file di output. ╚ inoltre possibile utilizzare il Includi Output passaggio nella cronologia opzione per reindirizzare le informazioni di registrazione in un file o alla cronologia dei processi di Agente SQL Server.

Di seguito Ŕ riportato un esempio di una riga di comando:

dtexec.exe /FILE 
"C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 
" /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


La registrazione /console restituisce dettagli analoghi ai seguenti:

Error: 2006-04-27 18:13:34.76
   Code: 0xC0202009
   Source: AgentTesting Connection manager "(local).msdb"
   Description: An OLE DB error has occurred. Error code: 0x80040E4D.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".
End Error


Error: 2006-04-28 13:51:59.19
   Code: 0xC0016016
   Source:  
   Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.
End Error


Log:
     Name: OnError
     Computer: COMPUTERNAME
     Operator: DOMAINNAME\username
     Source Name: Execute SQL Task
     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}
     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}
     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.
     Start Time: 2006-04-27 18:13:34
     End Time: 2006-04-27 18:13:34
End Log

Riferimenti

Per ulteriori informazioni su un problema analogo, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
904800Viene visualizzato un messaggio di errore "Errore durante il caricamento" quando si tenta di eseguire un pacchetto di SQL Server 2005 Integration Services in SQL Server 2005
Per ulteriori informazioni su come utilizzare l'utilitÓ Dtutil.exe nelle operazioni batch, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
906562Come utilizzare l'utilitÓ dtutil (Dtutil.exe) per impostare il livello di protezione di un batch di pacchetti di SQL Server Integration Services (SSIS) in SQL Server 2005
Per ulteriori informazioni su come creare modelli di pacchetto, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
908018Come creare un modello di pacchetto in SQL Server Business Intelligence Development Studio


Per ulteriori informazioni sulla protezione dei pacchetti SSIS e la proprietÓ ProtectionLevel , vedere l'argomento "Security Considerations per Integration Services" nella documentazione in linea di SQL Server 2005.

Sfortunatamente, gli utenti non sono consapevoli che impostazioni passaggio processo agente di default inseriscano in questo stato. Per ulteriori informazioni sul proxy di Agente SQL Server e SSIS, vedere i seguenti argomenti nella documentazione in linea di SQL Server 2005:
  • Pianificazione dell'esecuzione del pacchetto in SQL Server Agent
  • Creazione di proxy di Agente SQL Server

ProprietÓ

Identificativo articolo: 918760 - Ultima modifica: martedý 16 luglio 2013 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
Chiavi:á
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 918760
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com