Pachete SSIS nu se execută atunci când este solicitat la un pas de SQL Server Agent job

Traduceri articole Traduceri articole
ID articol: 918760 - View products that this article applies to.
Măriți totul | Reduceți totul

În această pagină

Simptome

Atunci când Apela?i un pachet de Microsoft SQL Server 2005 integrarea serviciilor (SSIS) la un pas de SQL Server Agent de job, pachete SSIS nu se execută. Cu toate acestea, dacă nu modificați pachete SSIS, va rula cu succes în afara SQL Server Agent.

Rezoluție

Pentru a rezolva această problemă, utilizați una dintre următoarele metode. Metoda cea mai potrivită depinde de mediu și motivul pentru care pachetul nu a reușit. Motivele pentru care pachetul să nu fi reușit sunt după cum urmează:
  • Contul de utilizator care este utilizat pentru a rula pachetul de SQL Server Agent diferă de la autorul pachetul original.
  • Contul de utilizator nu are permisiunile necesare pentru a face conexiuni sau pentru a accesa resurse în afara pachetului SSIS.
Pachetul nu poate rula în următoarele scenarii:
  • Utilizatorul curent nu pot decripta secretele la pachet. Acest scenariu poate apărea în cazul în care contul curent sau în contul de executie diferă de autorul pachetul original, și setarea pentru proprietatea pachetului ProtectionLevel nu se lasă utilizatorul curent decripta secrete în pachet.
  • O conexiune de SQL Server, care utilizează integrate de securitate nu reușește, deoarece utilizatorul curent nu are permisiunile necesare.
  • acorda acces la fișiere nu reușește, deoarece utilizatorul curent nu are permisiunile necesare pentru a scrie la partajarea de fi?iere care accesează manager conexiuni. De exemplu, acest scenariu poate apărea cu furnizorii de jurnal textul care nu utilizează un login și o parolă. Acest scenariu poate apărea, de asemenea, cu orice activitate care depinde de fișier manager conexiuni, cum ar fi o sarcină de sistem SSIS fișier.
  • O configurație de pachete SSIS bazate pe registry utilizează cheile de registry HKEY_CURRENT_USER. Cheile de registry HKEY_CURRENT_USER sunt specifice utilizatorului.
  • O sarcină sau un manager de conexiune necesită că contul curent de utilizator are permisiunile corecte.
Metoda 1: Utilizați un cont de proxy-ul SQL Server Agent

Metoda 2: Seta?i proprietatea ProtectionLevel de pachete SSIS ServerStorage

Metoda 3: Setat proprietatea SSIS pachet ProtectionLevel EncryptSensitiveWithPassword

Metoda 4: Fișierele de configurare utilizați SSIS pachet

Metoda 5: Creați un șablon de pachet

Stare

Acest comportament este de design.

Informații avansate

Pași pentru a reproduce problema

  1. Loghează-te ca un utilizator care nu este parte din grupul SQLServer2005SQLAgentUser. De exemplu, puteți crea un utilizator local.
  2. Creați un pachet de SSIS, și apoi adăugați o sarcină ExecuteSQL. Utilizarea unui manager de conexiunea OLE DB la fișierul msdb locale utilizând următorul șir: "Autentificarea Windows" -SQLSourceType: "Direct de intrare" -SQLStatement: "sp_who"
  3. Rula pachetul pentru a vă asigura că se execută cu succes.
  4. Observați că proprietatea ProtectionLevel este setată la EncryptSensitiveWithPassword.
  5. A crea un loc de muncă SQL Server Agent și un pas de job. În Rula ca listă, faceți clic pe Serviciul SQL Server Agent pentru a rula la pas de job.
Textul din SQL Server Agent de muncă istorie afișează informații care seamănă cu următorul:

Executat ca utilizator: domeniu\nume utilizator. Executarea pachet nu a reușit. Etapa nu a reușit.

Decriptare pachet Secretele

Setarea implicită pentru SSIS pachetul ProtectionLevel proprietate este EncryptSensitiveWithUserKey. Când pachetul este salvat, SSIS criptează numai părți ale pachetului care conține proprietăți, care sunt marcate "sensibile", cum ar fi parole, nume de utilizator și șiruri de conectare. Prin urmare, atunci când pachetul este reloaded, utilizatorul curent trebuie să îndeplinească cerințele de criptare pentru proprietățile sensibile să fie decriptat. Cu toate acestea, utilizatorul curent nu are pentru a satisface cerințele de criptare pentru a încărca pachetul. Când executați pachetul printr-un pas de SQL Server Agent de job, contul implicit este contul de SQL Server Agent de serviciu. Acest cont implicit este cel mai probabil un alt utilizator decât autorul pachet. Prin urmare, SQL Server Agent job pas puteți încărca și începe să curgă de la pas de job, dar pachetul nu reușește, deoarece acesta nu poate termina o conexiune. De exemplu, pachetul nu poate termina o conexiune OLE DB sau o conexiune FTP. Pachetul nu reușește, deoarece este imposibil de decriptat acreditările pe care trebuie să se conecteze.

Importante Luați în considerare procesul de dezvoltare și mediu pentru a determina ce conturi sunt necesare și utilizate pe fiecare computer. Setarea EncryptSensitiveWithUserKey a ProtectionLevel proprietate este o setare de puternic. Această setare nu ar trebui să fie reduse deoarece provoacă complicații de implementare la prima. Aveți posibilitatea să criptați pachetele, atunci când sunteți conectat la cont corespunzătoare. Utilizați utilitarul Dtutil.exe SSIS linia Către de comandă pentru a modifica nivelul de protecție utilizând un fișier .cmd ?i subsistemul de comandă SQL Server Agent. De exemplu, urmați acești pași. Pentru că puteți utiliza utilitarul Dtutil.exe în fișiere lot și bucle, puteți urmați acești pași pentru mai multe pachete în același marcă de timp.
  1. Modifica pachetul pe care doriți să cripta utilizând o parolă.
  2. Utilizați utilitarul Dtutil.exe printr-un sistem de operare (cmd Exec) SQL Server Agent job pas pentru a schimba proprietatea ProtectionLevel la EncryptSensitiveWithUserKey. Acest proces implica decriptarea pachet folosind parola, și apoi re-encrypting pachet. Cheia de utilizator care este utilizată pentru a cripta pachetul este SQL Server Agent job pas înRula ca Listă tabel.

    Notă Deoarece cheia include nume de sign-in de utilizator și nume de sign-in computerului, efectul de mișcare pachetele la alt computer poate fi limitat.

Asigurați-vă că vă au eroare informații detaliate despre eșecul de pachete SSIS

În loc de bazându-se pe detalii limitată în SQL Server Agent de muncă istorie, puteți utiliza SSIS logare pentru a vă asigura că aveți eroare informații despre eșecul SSIS pachet. De asemenea, puteți rula pachetul utilizând comanda exec subsistemului SSIS subsistemul de comandă.

Despre SSIS logare

SSIS furnizorii de exploatare forestieră și jurnal vă permit să captura detalii despre pachetul de execuție și eșecuri. implicit, pachetul nu log informații. Trebuie să configurați pachetul pentru a înregistra informații. Când configurați pachet la spre log informații, informații detaliate care seamănă cu următorul text este afișat. În acest caz, veți ști că este o problemă de permisiuni:

LaEroare, domeniului, DOMAINNAME\USERNAME, 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, x 0, nu se poate conecta la server FTP folosind "Manager conexiune FTP".

LaEroare, domeniului, DOMAINNAME\USERNAME, Execute SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4:07:00 PM, 4/28/2006 4:07:00 PM,-1073573396, x 0, nu a reușit să obțină conexiune "user01.msdb". Conexiunea nu poate fi configurat corect sau nu ave?i permisiuni de dreapta pe această conexiune.

Despre comanda subsistemului exec și informațiile de ieșire

Folosind abordarea comanda exec subsistemului, adăugați consola neexplicativă logare comutatoare în linia Către de comandă SSIS pentru a apela fișierul executabil de linia Către de comandă Dtexec.exe SSIS. În plus, utilizați caracteristica job avansata a fișierului de ieșire. Puteți utiliza, de asemenea, Include Output pas în istoria opțiunea de a redirecționa informațiile de logare la un fișier sau la SQL Server Agent de muncă istorie.

Următorul este un exemplu de o linia Către de comandă:

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


Logare/console întoarce detalii care seamănă cu următorul:

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

Referințe

Pentru mai multe informații despre o problemă similară, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
904800Primiți un mesaj de eroare "Eroare de încărcare", atunci când încercați să executați un pachet de consolidare servicii de integrare pentru SQL Server 2005 în SQL Server 2005
Pentru mai multe informații despre cum se utilizează utilitarul de Dtutil.exe în operațiuni de lot, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
906562Cum se utilizează utilitarul de dtutil (Dtutil.exe) pentru a seta nivelul de protecție a unui lot de pachete de SQL Server integrarea serviciilor (SSIS) în SQL Server 2005
Pentru mai multe informații despre cum să creați șabloane de pachet, faceți clic pe următorul număr de articol pentru a vedea articolul în bază de cunoștințe Microsoft:
908018Cum să creați un șablon de pachete în SQL Server business intelligence Development Studio


Pentru mai multe informații despre securitatea de pachete SSIS și proprietatea ProtectionLevel , a se vedea subiectul "Considerații pentru integrarea serviciilor de securitate" în SQL Server 2005 carti Online.

Din păcate, utilizatorii nu sunt conștienți de faptul că agentul job pas setarile le-a pus în această stare. Pentru mai multe informații despre SQL Server Agent proxy-uri și SSIS, consultați următoarele subiecte în SQL Server 2005 carti Online:
  • Programarea pachet executarea în SQL Server Agent
  • Crearea proxy-uri SQL Server Agent

Proprietă?i

ID articol: 918760 - Ultima examinare: 12 iulie 2013 - Revizie: 2.0
Se aplică la:
  • 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
Cuvinte cheie: 
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtro
Traducere automată
IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată ?i poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate ?i articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cuno?tin?e în mai multe limbi. Articolele traduse automat ?i post-editate pot con?ine gre?eli de vocabular, sintaxă ?i/sau gramatică. Microsoft nu este responsabil de inexactită?ile, erorile sau daunele cauzate de traducerea gre?ită a con?inutului sau de utilizarea acestuia de către clien?i. Găsi?i mai multe informa?ii despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 918760

Trimite?i feedback

 

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