SSIS-pakket wordt niet uitgevoerd wanneer u het pakket SSIS vanuit een taakstap SQL Server Agent aanroept

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 918760 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Wanneer u een pakket van Microsoft SQL Server 2005 Integration Services (SSIS) vanuit een SQL Server Agent taakstap aanroepen, SSIS-pakket niet uitgevoerd. Echter, als u het SSIS-pakket niet wijzigt, wordt uitgevoerd is buiten SQL Server Agent.

Oorzaak

Dit probleem treedt op wanneer een van de volgende voorwaarden voldaan is:
  • De gebruikersaccount die wordt gebruikt om het pakket onder SQL Server Agent verschilt van de oorspronkelijke auteur pakket.
  • De gebruikersaccount heeft niet de vereiste machtigingen om verbindingen te maken of toegang tot bronnen buiten het SSIS-pakket.
Het pakket kan niet worden uitgevoerd in de volgende gevallen:
  • De huidige gebruiker decoderen geheimen uit het pakket niet. Dit scenario kan zich voordoen als de huidige account of de Uitvoeringsaccount van de oorspronkelijke auteur pakket en het pakket verschiltProtectionLeveleigenschap laat niet de huidige gebruiker geheimen in het pakket gedecodeerd.
  • Een SQL Server-verbinding die gebruikmaakt van geïntegreerde beveiliging mislukt omdat de huidige gebruiker niet de vereiste machtigingen.
  • Toegang tot bestand mislukt omdat de huidige gebruiker niet de vereiste machtigingen te schrijven naar de bestandsshare Verbindingsbeheer benadert. Dit scenario kan bijvoorbeeld optreden met tekst logboek providers die een aanmeldingsnaam en wachtwoord niet gebruiken. Dit scenario kan ook optreden met elke taak die afhankelijk is van het bestand Verbindingsbeheer, zoals een taak SSIS bestand systeem.
  • Een configuratie op basis van het register SSIS-pakket gebruikt de registersleutels HKEY_CURRENT_USER. De registersleutels voor HKEY_CURRENT_USER zijn bepaalde gebruiker.
  • Een taak of een Verbindingsbeheer vereist dat de huidige gebruikersaccount de juiste machtigingen heeft.

Oplossing

Dit probleem oplossen door een van de volgende methoden te gebruiken. De meest geschikte methode is afhankelijk van het milieu en de reden dat het pakket is mislukt.

Methode 1: Gebruik een proxy-account van SQL Server Agent

Maak een proxyaccount van SQL Server Agent. Proxy-account moet een referentie SQL Server Agent de taak wordt uitgevoerd als de account die het pakket gemaakt of een account met de vereiste machtigingen kunt gebruiken.

Deze methode werkt geheimen decoderen en voldoet aan de vereisten voor de gebruiker. Deze methode kan hebben echter slechts beperkt succes omdat SSIS package gebruikerssleutels waarbij de huidige gebruiker en de huidige computer. Dus als u het pakket naar een andere computer, mislukken deze methode nog steeds, zelfs als de taakstap de juiste proxy-account gebruikt.

Methode 2: Stel de eigenschap SSIS Package ProtectionLevel op ServerStorage

SSIS-pakket wijzigenProtectionLeveleigenschap ServerStorage. Deze instelling wordt het pakket opgeslagen in een SQL Server-database en kan toegangsbeheer via functies voor SQL Server-database.

Methode 3: De eigenschap SSIS Package ProtectionLevel instellen op EncryptSensitiveWithPassword

SSIS-pakket wijzigenProtectionLeveleigenschap EncryptSensitiveWithPassword. Deze instelling een wachtwoord voor de codering wordt gebruikt. Vervolgens wijzigt u de opdrachtregel van SQL Server Agent taak stap wachtwoord opnemen.

Methode 4: Gebruik SSIS-pakket configuratiebestanden

Configuratiebestanden SSIS-pakket gebruiken voor het opslaan van vertrouwelijke gegevens en configuratiebestanden vervolgens opslaan in een beveiligde map. U kunt vervolgens wijzigen deProtectionLeveleigenschap DontSaveSensitive zodat het pakket niet is gecodeerd en niet proberen het pakket geheimen opslaan. Bij het uitvoeren van SSIS-pakket wordt de vereiste informatie uit het configuratiebestand geladen. Controleer of de configuratiebestanden adequaat worden beschermd als ze gevoelige informatie bevatten.

Methode 5: Een pakketsjabloon maken

Voor een oplossing op lange termijn een pakketsjabloon maken die een niveau van bescherming dat van de standaardinstelling verschilt gebruikt. Dit probleem doet zich niet in toekomstige pakketten.

Status

Dit gedrag is inherent.

Meer informatie

Stappen om het probleem te reproduceren

  1. Aanmelden als een gebruiker die geen deel van de groep SQLServer2005SQLAgentUser uitmaakt. U kunt bijvoorbeeld een lokale gebruikersaccount maken.
  2. SSIS-pakket maken en vervolgens een taak ExecuteSQL toevoegen. Gebruik een OLEDB-Verbindingsbeheer het bestand lokaal msdb door met de volgende tekenreeks:Windows-verificatie -SQLSourceType: "Directe invoer" -SQLStatement: "sp_who"
  3. Voer het pakket ervoor is uitgevoerd.
  4. Dat deProtectionLevelde eigenschap is ingesteld op EncryptSensitiveWithPassword.
  5. Een SQL Server Agent-taak en taakstap maken. In deUitvoeren alsopSQL Server Agent-Servicede taakstap uitvoeren.
De tekst in de SQL Server agentgeschiedenis weergegeven informatie de volgende strekking:

Als gebruiker uitgevoerd: DOMEIN\gebruikersnaam. Het pakket is mislukt. De stap is mislukt.

Pakket geheimen decoderen

De standaardinstelling voor SSIS-pakketProtectionLeveleigenschap is EncryptSensitiveWithUserKey. Wanneer het pakket wordt opgeslagen, codeert SSIS alleen de onderdelen van het pakket met de eigenschappen die zijn gemarkeerd als 'gevoelige,"zoals wachtwoorden en gebruikersnamen verbindingsreeksen. Dus wanneer het pakket opnieuw wordt geladen, de huidige gebruiker moet voldoen aan de codering van vertrouwelijke eigenschappen te worden gedecodeerd. De huidige gebruiker geen echter voldoen aan de codering voor het laden van het pakket. Wanneer u het pakket via een SQL Server Agent-taakstap uitvoert, is de standaardaccount voor SQL Server Agent-Service-account. Deze standaard is waarschijnlijk een andere gebruiker dan de auteur van het pakket. Daarom de SQL Server Agent taakstap kunt laden en start de taakstap uitvoeren, maar het pakket is mislukt omdat een verbinding kan niet worden voltooid. Het pakket kan bijvoorbeeld niet voltooien OLE DB-verbinding of een FTP-verbinding. Het pakket mislukt omdat deze de referenties waarmee verbinding moet hebben niet decoderen.

BelangrijkOverweeg het ontwikkelingsproces en het milieu te bepalen welke accounts zijn nodig en gebruikt op elke computer. De instelling van de EncryptSensitiveWithUserKey van deProtectionLeveleigenschap is een krachtige instelling. Deze instelling moet niet worden gedisconteerd, omdat hierdoor implementatie complicaties eerst. U kunt de pakketten coderen wanneer u bent aangemeld met de juiste account. U kunt ook het opdrachtregelprogramma Dtutil.exe SSIS bescherming niveaus wijzigen met een .cmd-bestand en de SQL Server Agent opdracht subsysteem. Bijvoorbeeld als volgt te werk. Omdat u het hulpprogramma Dtutil.exe in batchbestanden en lussen kunt, kunt u volgt voor meerdere pakketten tegelijk.
  1. Het pakket dat u versleutelen wilt met een wachtwoord wijzigen.
  2. Gebruik het hulpprogramma Dtutil.exe via eenBesturingssysteem (Exec cmd)SQL Server Agent taakstap wijzigen deProtectionLeveleigenschap EncryptSensitiveWithUserKey. Dit proces omvat het pakket te decoderen met behulp van het wachtwoord en re-encrypting het pakket. De sleutel van de gebruiker die wordt gebruikt voor het coderen van het pakket is de SQL Server Agent taakstap instellen in deUitvoeren alslijst.

    OpmerkingOmdat de sleutel de naam en de computernaam bevat, kan het effect van de pakketten te verplaatsen naar een andere computer worden beperkt.

Zorg ervoor dat u foutinformatie over de mislukte SSIS-pakket hebben gedetailleerde

In plaats van te vertrouwen op beperkte details in de SQL Server agentgeschiedenis kunt u logboekregistratie om ervoor te zorgen dat foutinformatie over de mislukte SSIS-pakket SSIS. U kunt ook het pakket met de opdracht exec subsysteem in plaats van de opdracht SSIS subsysteem uitvoeren.

Over SSIS-logboekregistratie

SSIS Logboeken en logboekbestanden providers kunnen u details over de pakketuitvoering van het en fouten vastgelegd. Standaard wordt het pakket niet informatie geregistreerd. U moet het pakket logboekgegevens configureren. Bij het configureren van het pakket informatie ziet u gedetailleerde informatie de volgende strekking. In dit geval weet u dat er een probleem met machtigingen:

OnError, domeinnaam, domeinnaam\gebruikersnaam, 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 geen verbinding maken met de FTP-server via ' FTP Connection Manager '.

OnError domeinnaam domeinnaam\gebruikersnaam, 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 verkrijgen verbinding 'user01.msdb' is mislukt. Verbinding niet juist geconfigureerd of u hebt niet de juiste machtigingen voor deze verbinding.

Over de opdracht exec subsysteem en informatie

Met exec subsysteem opdracht benadering kunt u uitgebreide logboekregistratie schakelopties voor de opdrachtregel SSIS opdrachtregelprogramma uitvoerbaar bestand voor SSIS Dtexec.exe aanroepen console toevoegen. Bovendien kunt u de functie Geavanceerd taak van het uitvoerbestand gebruiken. U kunt ook deStap uitvoer in de geschiedenis opnemenoptie om de logboekgegevens naar een bestand of de SQL Server agentgeschiedenis.

Hier volgt een voorbeeld van een opdrachtregel:

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


De registratie/console retourneert details de volgende strekking:

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

Referenties

Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over een soortgelijk probleem:
904800Ontvangt een foutbericht 'Fout bij laden' wanneer u een pakket van SQL Server 2005 Integration Services uitvoeren in SQL Server 2005
Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het gebruik van het hulpprogramma Dtutil.exe in batchbewerkingen:
906562Hoe het beveiligingsniveau van een partij van pakketten van SQL Server Integration Services (SSIS) in SQL Server 2005 instellen met het hulpprogramma dtutil (Dtutil.exe)
Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het pakket sjablonen maken:
908018Pakketsjabloon maken in SQL Server Business Intelligence Development Studio


Pakket voor meer informatie over SSIS beveiliging en deProtectionLeveleigenschap, Zie het onderwerp 'Beveiliging overwegingen voor Integration Services' in SQL Server 2005 Books Online.

Helaas zijn gebruikers niet weten dat stap standaard agent taakinstellingen opslaan in deze staat. Zie de volgende onderwerpen in SQL Server 2005 Books Online voor meer informatie over SQL Server Agent-proxy's en SSIS:
  • Pakketuitvoering in SQL Server Agent plannen
  • SQL Server Agent-proxy's maken

Eigenschappen

Artikel ID: 918760 - Laatste beoordeling: dinsdag 16 juli 2013 - Wijziging: 3.1
De informatie in dit artikel is van toepassing op:
  • 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
Trefwoorden: 
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 918760

Geef ons 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