Momentan sunteți offline, așteptați să vă reconectați la internet

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

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
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
Creaţi un cont de proxy-ul SQL Server Agent. Acest cont de proxy-ul trebuie să utilizeze o acreditare care permite SQL Server Agent executa lucrarea ca contului care a creat pachetul sau ca un cont care are permisiunile necesare.

Această metodă funcţionează pentru a decripta secretele şi satisface cerinţele cheie de utilizator. Cu toate acestea, această metodă poate au limitat succesul pentru că tastele de utilizator SSIS pachet implica utilizatorul curent şi computerul curent. Prin urmare, dacă mutaţi pachetul la alt computer, aceasta metoda poate încă nu reuşesc, chiar dacă pas job foloseste contul proxy-ul corect.

Metoda 2: Setați proprietatea ProtectionLevel de pachete SSIS ServerStorage
Modificaţi proprietatea SSIS pachet ProtectionLevel la ServerStorage. Această setare stochează pachet într-o bază acoperire de date SQL Server şi permite control acces prin roluri de baze acoperire de date SQL Server.

Metoda 3: Setat proprietatea SSIS pachet ProtectionLevel EncryptSensitiveWithPassword
Modificaţi proprietatea SSIS pachet ProtectionLevel la EncryptSensitiveWithPassword. Această setare utilizează o parolă pentru criptare. Apoi, aveţi posibilitatea să modificaţi în linia Către de comandă SQL Server Agent job pas pentru a include această parolă.

Metoda 4: Fişierele de configurare utilizaţi SSIS pachet
Utilizaţi fişierele de configurare SSIS pachet pentru a stoca informaţii sensibile şi apoi stoca aceste fişiere de configurare într-un folder securizate. Puteţi apoi schimba proprietatea ProtectionLevel la DontSaveSensitive astfel încât pachetul nu sunt criptate şi nu încercaţi să salvaţi secretele la pachet. Când executaţi pachete SSIS, informaţiile necesare este încărcat de fişier de configurare.Asiguraţi-vă că fişierele de configurare sunt protejate în mod corespunzător dacă acestea conțin informații sensibile.

Metoda 5: Creaţi un şablon de pachet
Pentru o rezoluţie pe termen lung, creează un șablon de pachet, care utilizează un nivel de protecţie, care diferă de la setarea implicită. Această problemă nu va apărea în viitor pachete.
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:34End 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

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 918760 - Ultima examinare: 07/12/2013 08:29:00 - Revizie: 2.0

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

  • kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtro
Feedback
tml>