Teď jste offline a čekáte, až se znova připojí internet.

Direktivy SSI balíček se nespustí při volání z kroku úloha Agent serveru SQL Server

DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.

Projděte si také anglickou verzi článku: 918760
Příznaky
Při volání balíček Microsoft SQL Server 2005 Integration Services (SSIS) z kroku úloha Agent serveru SQL Server, SSIS balíček se nespustí. Nicméně pokud není úprava SSIS balíček, bude spuštěna úspěšně mimo SQL Server Agent.
Řešení
Chcete-li vyřešit tento problém, použijte jednu z následujících metod. Nejvhodnější metoda závisí na prostředí a důvod, proč balíčku se nezdařilo. Důvody, které by mohlo dojít k selhání balíčku jsou následující:
  • Uživatelský účet, který slouží ke spuštění balíčku pod SQL Server Agent se liší od původní autor balíček.
  • Uživatelský účet nemá potřebná oprávnění k vytvoření připojení nebo přístup k prostředkům mimo balíček SSIS.
Balíček nemusí spustit v následujících situacích:
  • Aktuální uživatel nemůže dešifrovat tajné klíče z balíčku. V tomto scénáři může dojít v případě, že běžný účet nebo účet provedení se liší od původní autor balíčku a balíčku ProtectionLevel vlastnost nastavení neumožňuje aktuálního uživatele dešifrovat tajné klíče v balíčku.
  • Vzhledem k tomu, že aktuální uživatel nemá požadovaná oprávnění se nezdaří připojení k serveru SQL, který používá integrované zabezpečení.
  • Přístup k souboru se nezdaří, protože aktuální uživatel nemá potřebná oprávnění k zápisu do sdílené položky, který přistupuje k programu connection manager. Například v tomto scénáři může dojít se text zprostředkovatelů protokolu, které nepoužívají přihlašovacího jména a hesla. V tomto scénáři může nastat také u libovolného úkolu, který je závislý na souboru programu connection manager jako systémový soubor úkol SSIS.
  • Založené na registru konfigurace balíčku SSIS používá klíče registru HKEY_CURRENT_USER. Klíče registru HKEY_CURRENT_USER jsou specifické pro uživatele.
  • Úkol nebo Správce připojení vyžaduje, že aktuální uživatelský účet má správná oprávnění.
Metoda 1: Použití účet SQL Server Agent serveru proxy
Vytvořte účet SQL Server Agent serveru proxy. Tento účet serveru proxy je nutné použít pověření, která umožňuje SQL Server Agent úlohu spustit pod účtem, který balíček vytvořil nebo jako účet, který má potřebná oprávnění.

Tuto metodu lze použít k dešifrování tajemství a splňuje požadavky na klíče uživatelem. Nicméně tato metoda omezená úspěch protože zahrnují SSIS balíček uživatelské klíče aktuálního uživatele a aktuální počítač. Proto balíček přesunete do jiného počítače, tato metoda může nezdaří, i v případě, že úloha krok používá účet serveru proxy správné.

Metoda 2: Nastavte vlastnost ProtectionLevel SSIS balíček ServerStorage
Změňte vlastnost balíček SSIS ProtectionLevelServerStorage. Toto nastavení balíčku jsou uloženy v databázi serveru SQL Server a umožňuje řízení přístupu prostřednictvím rolí databáze serveru SQL Server.

Metoda 3: Nastavte vlastnost ProtectionLevel SSIS balíček EncryptSensitiveWithPassword
Změňte vlastnost balíček SSIS ProtectionLevel EncryptSensitiveWithPassword. Toto nastavení používá pro šifrování hesla. Pak můžete upravit SQL Server Agent úloha kroku příkazového řádku zahrnout toto heslo.

Metoda 4: Použití balíčku SSIS konfigurační soubory
Ukládání citlivých informací pomocí balíčku SSIS konfigurační soubory a potom tyto konfigurační soubory uložit v zabezpečené složce. Můžete potom změňte vlastnost ProtectionLevel na DontSaveSensitive, takže balíček není šifrováno a ne pokusit uložit tajemství balíček. Při spuštění balíčku SSIS požadované informace je načten z konfiguračního souboru. Ujistěte se, že konfigurační soubory jsou náležitě chráněny pokud obsahují citlivé informace.

Metoda 5: Vytvoření šablony balíčku
Pro dlouhodobé řešení vytvořte šablonu balíček, který používá úroveň ochrany, která se liší od výchozího nastavení. K tomuto problému v budoucnu nedojde, balíčky.
Prohlášení
Toto chování je záměrné.
Upřesňující informace

Kroky pro reprodukci problému

  1. Přihlaste se jako uživatel, který není součástí skupiny SQLServer2005SQLAgentUser. Můžete například vytvořit místní uživatel.
  2. Vytvoření balíčku SSIS a potom přidat úkol ExecuteSQL. Pomocí Správce připojení OLE DB k souboru místní msdb následující řetězec: Ověření systému Windows-SQLSourceType: "Přímý vstup"-SQLStatement: "sp_who"
  3. Spusťte balíček, abyste se ujistili, že běží úspěšně.
  4. Všimněte si, že vlastnostProtectionLevel je nastavena na EncryptSensitiveWithPassword.
  5. Vytvořte SQL Server Agent úloha a úloha kroku. V seznamu Spustit jako klepněte na tlačítko krok úloha spuštěna Služba Agent serveru SQL .
Text v historii úlohy SQL Server Agent zobrazí informace podobné následující:

Provedeny jako uživatel: DOMÉNA\uživatelské_jméno. Spuštění balíčku se nezdařilo. V kroku se nezdařilo.

Dešifrování tajemství balíček

Výchozí nastavení pro balíček SSISProtectionLevel vlastnost je EncryptSensitiveWithUserKey. Při uložení balíčku SSIS šifruje pouze části balení, které obsahují vlastnosti, které jsou označeny jako "citlivé informace," například připojovací řetězce, hesla a uživatelská jména. Proto při opětovném načítání balíček aktuální uživatel musí splňovat požadavky na šifrování citlivých vlastností má být dešifrován. Aktuální uživatel však nemusí splňovat požadavky na šifrování načíst balíček. Když spustíte balíček prostřednictvím krok úloha Agent serveru SQL Server, výchozí účet je účet služba Agent serveru SQL. Tento výchozí účet je pravděpodobně jiný uživatel než autorovi balíčku. Proto můžete načíst a spustit spuštění úloha krok krok úloha Agent serveru SQL Server, ale balíček se nezdaří, protože jej nelze dokončit připojení. Například balíček nelze dokončit připojení technologie OLE DB nebo připojení FTP. Balíček se nezdaří, protože jej nelze dešifrovat pověření, které musí mít pro připojení.

DůležitéZvažte procesu rozvoje a životního prostředí určují účty, které jsou nutné a v každém počítači. EncryptSensitiveWithUserKey nastaveníProtectionLevel vlastnost je výkonný nastavení. Toto nastavení by nemělo uvažují, protože způsobuje komplikace při nasazení na první. Balíčky můžete zašifrovat, když jste přihlášeni na příslušný účet. Změna úrovně ochrany pomocí souboru CMD a subsystému Agent serveru SQL Server můžete použít také nástroj příkazového řádku Dtutil.exe SSIS. Například postupujte takto: Vzhledem k tomu, že pomocí nástroje Dtutil.exe dávkové soubory a smyčky, abyste postupovali takto několik balíčků současně.
  1. Upravte balíček, který chcete zašifrovat pomocí hesla.
  2. Pomocí nástroje Dtutil.exe prostřednictvím krok úloha Agent serveru SQL Server operační systém (cmd Exec) změňte vlastnost ProtectionLevelhodnotu EncryptSensitiveWithUserKey. Tento proces zahrnuje dešifrování pomocí hesla a znovu šifrovaného balíčku balíček. Uživatelský klíč, který slouží k šifrování balíček je krok úloha Agent serveru SQL Server, nastavení v seznamuSpustit jako .

    Poznámka: Vzhledem k tomu, že klíč obsahuje uživatelské jméno a název počítače, může být omezena vliv na pohyb balíčky do jiného počítače.

Ujistěte se, že mají podrobné chybové informace o chybě balíčku SSIS

Namísto spoléhání se na omezené podrobnosti v historii úlohy SQL Server Agent, můžete použít protokolování a ujistěte se, že chyba informace o chybě balíčku SSIS SSIS. Balíček můžete také spustit pomocí příkazu exec subsystému místo příkazu SSIS podsystém.

O protokolování SSIS

Zprostředkovatelé protokolování a protokolu SSIS umožňují zachycení informace o spuštění balíčku a selhání. Ve výchozím nastavení balíčku nezaznamenává informace. Je nutné nakonfigurovat balíček protokolování informací. Při konfiguraci balíčku do protokolu informace, zobrazí se podrobné informace podobná následující. V takovém případě budete vědět, že se jedná o problém s oprávněními:

PřiChybě, název_domény, název_domény\uživatelské_jméno, 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, nelze se připojit k serveru FTP pomocí "Správce připojení FTP".

PřiChybě, název_domény, název_domény\uživatelské_jméno spouštění SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4:07:00 hodin v 4/28/2006 4:07:00 PM,-1073573396, 0 x, nepodařilo se získat připojení "user01.msdb". Připojení není správně nakonfigurován nebo nemáte oprávnění u tohoto připojení.

O příkazu exec subsystému a výstupní informace

S využitím metody příkazu exec subsystému, přidání přepínače příkazového řádku SSIS volání direktivy SSI Dtexec.exe příkazového řádku spustitelného souboru protokolování verbose konzoly. Navíc použít funkci Rozšířené úlohy výstupního souboru. Můžete také Zahrnout výstup kroku v historii možnost přesměrovat protokolování informací do souboru nebo SQL Server Agent úloha historie.

Následuje příklad příkazového řádku:

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


Protokolování/Console vrátí podrobné informace podobné následujícím:

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
Odkazy
Další informace o podobném problému klepněte na následující číslo článku databáze Microsoft Knowledge Base:
904800 Při pokusu o spuštění balíčku SQL Server 2005 Integration Services v SQL Server 2005 se zobrazí chybová zpráva "Chyba při načítání"
Další informace o použití nástroje Dtutil.exe dávkové operace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
906562 Jak nastavit úroveň ochrany dávkové SQL Server Integration Services (SSIS) balíčky SQL Server 2005 pomocí dtutil nástroj (Dtutil.exe)
Další informace o tom, jak vytvořit šablony balíčku, klepněte na následující číslo článku databáze Microsoft Knowledge Base:
908018 Jak vytvořit šablonu balíček v SQL Server Business Intelligence Development Studio


Další informace o zabezpečení balíčku SSIS a ProtectionLevel vlastnost v tématu "Zabezpečení úvahy pro Integration Services" v SQL Server 2005 Books Online.

Bohužel uživatelé nevědí, že nastavení agenta úloha krok, vložit je do tohoto stavu.Další informace o SQL Server Agent proxy a SSIS naleznete v následujících tématech v SQL Server 2005 Books Online:
  • Plánování spuštění balíčku SQL Server Agent
  • Vytváření SQL Server agenta proxy.

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 918760 - Poslední kontrola: 03/15/2015 03:42:00 - Revize: 5.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 KbMtcs
Váš názor
ript> /html>