Při volání direktivy SSI balíček z úlohy krok Agent serveru SQL Server nelze spustit balíček direktivy SSI

Překlady článku Překlady článku
ID článku: 918760 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při volání Microsoft SQL Server 2005 Integration Services Skriptové balíčku z úlohy krok Agent serveru SQL Server, direktivy SSI balíček se nespustí. Však není upravíte balíček direktivy SSI, bude spuštěn úspěšně mimo Agent serveru SQL Server.

Příčina

K tomuto problému dochází, pokud platí jedna z následujících podmínek:
  • Uživatelský účet, který slouží ke spuštění balíčku pod Agent serveru SQL Server se liší od původní autor balíčku.
  • Uživatelský účet nemá potřebná oprávnění k připojení nebo přístup k prostředkům vně balíčku direktivy SSI.
Balíček není spuštěn v následujících situacích:
  • Aktuálního uživatele nelze dešifrovat tajemství z balíčku. V tomto scénáři může dojít, je-li aktuální účet nebo účet spuštění se liší od původní autor balíčku a balíčku ProtectionLevel nastavení vlastnosti neumožňuje aktuálního uživatele dešifrovat tajemství v balíčku.
  • Připojení serveru SQL Server, který používá integrované zabezpečení se nezdaří, protože aktuální uživatel nemá potřebná oprávnění.
  • Přístup k souboru se nezdaří, protože aktuální uživatel nemá potřebná oprávnění k zápisu do sdílené přistupuje k programu connection manager. Například v tomto scénáři může dojít u poskytovatelů text protokolu, které nepoužívají přihlašovací jméno a heslo. 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 direktivy SSI.
  • Založené na registru konfigurace balíčku direktivy SSI používá klíče registru HKEY_CURRENT_USER. Klíče registru HKEY_CURRENT_USER jsou specifické pro uživatele.
  • Úlohy nebo programu connection manager vyžaduje, aby aktuální uživatelský účet nemá správná oprávnění.

Řešení

Chcete-li tento problém vyřešit, použijte jednu z následujících metod. Nejvhodnější způsob závisí na životní prostředí a důvodem balíčku se nezdařilo.

Metoda 1: Použijte účet serveru proxy Agent serveru SQL Server

Vytvoření účtu serveru proxy Agent serveru SQL Server. Tento účet serveru proxy je nutné použít pověření, která umožňuje Agent serveru SQL Server spustit úlohu jako účet, který je vytvořen balíček nebo účtu, který má potřebná oprávnění.

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

Metoda 2: Vlastnost ProtectionLevel balíček direktivy SSI na ServerStorage

Změna balíčku direktivy SSI ProtectionLevel Vlastnost ServerStorage. Toto nastavení ukládá balíček v databázi serveru SQL Server a umožňuje řídit přístup pomocí rolí databáze serveru SQL Server.

Metoda 3: Vlastnost ProtectionLevel balíček direktivy SSI na EncryptSensitiveWithPassword

Změna balíčku direktivy SSI ProtectionLevel Vlastnost EncryptSensitiveWithPassword. Toto nastavení používá pro šifrování hesla. Agent serveru SQL Server úlohy krok do příkazového řádku patří toto heslo můžete pak upravit.

Metoda 4: Použití direktivy SSI balíček konfigurační soubory

Pomocí direktivy SSI balíček konfigurační soubory uložit důvěrné informace a tyto konfigurační soubory uložit do složky zabezpečené. Pak můžete změnit ProtectionLevel Vlastnost DontSaveSensitive tak, že balíček není šifrován a není pokusit uložit tajné klíče k balíčku. Spustíte-li balíček direktivy SSI, 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í důvěrné informace.

Metoda 5: Vytvořit šablonu balíček

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 nedojde v budoucnosti balíčky.

Prohlášení

Toto chování je záměrné.

Další 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 direktivy SSI a potom přidejte k ExecuteSQL úkolu. Pomocí Správce připojení OLEDB souboru místní msdb následující řetězec: "Ověřování systému Windows" -SQLSourceType: "Přímý vstup" -SQLStatement: "sp_who"
  3. Spusťte balíček a ujistěte se, že ji úspěšně spuštěn.
  4. Všimněte si, že ProtectionLevel vlastnost nastavena na EncryptSensitiveWithPassword.
  5. Vytvořte úlohu Agent serveru SQL Server a projektu krok. V Spustit jako Klepněte na položku Služba Agent serveru SQL spuštění úlohy krok.
Text v historii úlohy agenta serveru SQL se zobrazí informace, která se podobá následující:

Spustit jako uživatel: doména\uživatelské_jméno. Spuštění balíčku se nezdařilo. Krok se nezdařilo.

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

Ve výchozím nastavení direktivy SSI balíček ProtectionLevel Vlastnost je EncryptSensitiveWithUserKey. Po uložení balíček direktivy SSI šifruje pouze části balíčku, které obsahují vlastnosti, které jsou označeny jako "citlivé," jako jsou například uživatelská jména, hesla a připojovací řetězce. Proto při balíček nepokračuje, aktuálního uživatele musí splňovat požadavky na šifrování citlivých vlastností dešifrování. Aktuální uživatel však nemá šifrování požadavků načíst balíček. Spustíte-li balíček prostřednictvím úlohy krok 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 krok úlohy Agent serveru SQL Server můžete načíst a spustit spuštění úlohy krok, ale balíčku se nezdaří, protože nemůže dokončit připojení. Například balíček nelze dokončit, připojení k rozhraní OLE DB nebo připojení FTP. Balíček se nezdaří, protože jej nelze dešifrovat pověření, které je třeba připojit.

Důležité Zvažte procesu rozvoje a životního prostředí určují účty, které jsou nezbytné a v každém počítači. Nastavení EncryptSensitiveWithUserKey ProtectionLevel Vlastnost je výkonné nastavení. Toto nastavení by není uvažují, protože způsobuje, že zavedení komplikace při prvním. Balíčky můžete zašifrovat, když jste přihlášeni na příslušný účet. Nástroj příkazového řádku Dtutil.exe direktivy SSI můžete také změnit úrovně ochrany pomocí souboru cmd a na subsystém Agent serveru SQL Server. Například postupujte takto: Protože můžete použít nástroj Dtutil.exe v dávkových souborech a smyčky, můžete provedením následujících kroků několik balíčků současně.
  1. Upravte balíček, který chcete zašifrovat pomocí hesla.
  2. Použijte nástroj Dtutil.exe pomocí Operační systém (cmd Exec) Agent serveru SQL Server úlohy kroku změnit ProtectionLevel Vlastnost EncryptSensitiveWithUserKey. Tento proces zahrnuje dešifrování balíček pomocí hesla, a potom re-encrypting balíčku. Uživatelský klíč, který se používá k zašifrování balíček je SQL Server Agent krok úlohy nastavení v Spustit jako seznam.

    Poznámka: Protož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 jste podrobné chybové informace o chybě balíčku direktivy SSI

Namísto omezené podrobnosti v historii úlohy agenta serveru SQL, můžete použít direktivy SSI, protokolování a ujistěte se, chyba informace o chybě balíčku direktivy SSI. Balíček můžete spustit také pomocí příkazu exec subsystému místo direktivy SSI příkaz podsystému.

O protokolování direktivy SSI

Protokolování a protokolu poskytovatelů direktivy SSI umožňují zachytit podrobnosti o spuštění balíčku a selhání. Ve výchozím nastavení balíčku nezaznamenává informace. Je nutné nakonfigurovat protokolování informací o balíčku. Při konfiguraci informace o balíčku, zobrazí se podrobné informace, která se podobá následující. V takovém případě bude 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, 1:51:59 4, 28/2006 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 PM, 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 prostřednictvím tohoto připojení nemáte správná oprávnění.

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

Pomocí přístup příkazu exec subsystému přidáte verbose konzoly protokolování přepínače příkazového řádku direktivy SSI volání direktivy SSI Dtexec.exe příkazového řádku spustitelného souboru. Navíc použít funkci Rozšířené úlohy výstupního souboru. Můžete použít také Zahrnout výstupní krok v historii možnost přesměrovat informace o protokolování do souboru nebo do historie úlohy agenta serveru SQL.

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í 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:34
End Log

Odkazy

Další informace o podobném problému klepněte na následující číslo článku databáze Microsoft Knowledge Base:
904800Při pokusu o spuštění balíčku aplikace SQL Server 2005 Integration Services serveru SQL Server 2005 se zobrazí chybová zpráva "Chyba při načítání."
Další informace o použití nástroje Dtutil.exe v dávkové operace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
906562Jak nastavit úroveň ochrany dávku balíčků direktivy SSI (SQL Server Integration Services) na serveru SQL Server 2005 pomocí nástroje dtutil (Dtutil.exe)
Další informace o vytváření šablon balíčku klepněte na následující číslo článku databáze Microsoft Knowledge Base:
908018Vytvoření balíčku šablony v aplikaci SQL Server Business Intelligence Development Studio


Další informace o direktivy SSI balíček zabezpečení a ProtectionLevel Vlastnost, naleznete v tématu "Zabezpečení důležité informace pro integraci služby" v SQL Server 2005 Books Online.

Bohužel uživatelé nebudou vědět, že agent úlohy kroku nastavení jejich uváděny v tomto stavu. Další informace o proxy serveru SQL Server Agent a direktivy SSI naleznete v následujících tématech SQL Server 2005 Books Online:
  • Plánování spuštění balíčku v Agent serveru SQL Server
  • Vytváření Agent serveru SQL Server proxy

Vlastnosti

ID článku: 918760 - Poslední aktualizace: 22. května 2011 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:918760

Dejte nám zpětnou vazbu

 

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