Soubor INF: Jak DTS balíček spustit jako naplánovanou úlohu

Překlady článku Překlady článku
ID článku: 269074 - 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

Souhrn

Problém, se kterými se můžete setkat často s balíčkem Data Transformation Services (DTS) je, že balíček DTS spouští bezchybný z SQL Server Enterprise Manager, ale balíček DTS nezdaří při je naplánováno spouštění jako úloha. Obvykle to dochází v důsledku rozdíl v kontextu zabezpečení při spuštění balíčku jako úloha versus spustíte balíčku je interaktivní.

Tento článek popisuje problematiku zabezpečení v provozním DTS balíčků.

Další informace

Některé termíny používané v tomto článku zahrnují:
Zmenšit tuto tabulkuRozšířit tuto tabulku
PodmínkyPopis
DTSData Transformation Services
Ověřování SQLSystém zabezpečení, který je založen na Microsoft SQL Server přihlášení a hesla.
Standardní zabezpečeníViz ověřování SQL.
Ověřování serveru SQL ServerViz ověřování SQL.
Ověřování systému Microsoft Windows NTPokud se uživatel připojí pomocí uživatelského účtu systému Microsoft Windows, serveru SQL Server ověří, že byly validovány název účtu a heslo v případě uživatel přihlášen k počítači se systémem Microsoft Windows NT, Microsoft Windows 2000, systému Microsoft Windows 95 nebo Microsoft Windows 98.
Integrované zabezpečeníViz ověřování systému Microsoft Windows NT.
Ověřování systému Windows NT nebo Microsoft Windows 2000Viz ověřování systému Microsoft Windows NT.
Účet systému Microsoft Windows NT nebo přihlášení se rovná přihlášení systému Windows nebo účetStejné jako přihlašovací účet systému Microsoft Windows NT nebo Microsoft Windows 2000 přihlašovací účet.
SQL AgentSlužba Agent serveru SQL
SEMSQL Server Enterprise Manager

Kde je spuštění balíčku DTS?

Jeden problém, který je často hlášen balíčky DTS je rozdíl v chování při balíčku spuštění z SQL Enterprise Manager versus při plánování DTS balíček jako úloha. Když spustíte balíček z Návrháře DTS SQL Enterprise Manager (SEM), balíček je v počítači spuštěna kde jsou usazeny. Pokud jste na serveru (buď fyzicky, nebo prostřednictvím softwaru pro vzdálený přístup), balíček je spuštěna na serveru. Pokud vám jsou usazeny na pracovní stanici a jste si zaregistrovali v nástroji Enterprise Manager serveru SQL server, balíček je spuštěn na pracovní stanici. Kontext zabezpečení balíčku je, že účtu systému Windows NT je použita k přihlášení do počítače. Při spuštění balíčku jako naplánovanou úlohu, je vždy balíček spustit na serveru.

Vývojáři často, vytvoří a testy balíček DTS interaktivně na pracovní stanici pomocí DTS Návrhář v nástroji Enterprise Manager. Po je ladění DTS balíček, balíček pak naplánovány jako úloha. To změní umístění balíčku na server z pracovní stanice vývojář. Pokud balíček byl načítání textových dat do serveru SQL Server, balíček se nezdaří, pokud existují textového souboru a cestu k souboru na serveru. Pokud byl balíček připojení na jiný server, balíček selže, pokud kontext zabezpečení úlohy nepodporuje připojení.

Kdo vlastní úlohy se spustí balíček DTS?

Balíčky jsou naplánovány vytvořením úlohy, která jsou spravována službou SQL Agent. Tuto úlohu, jako ostatní naplánované úlohy, je přiřazen vlastník. Vlastník může být přihlašovacího jména serveru SQL Server nebo účet systému Windows NT.

Chcete-li zjistit vlastníka:
  • Poklepejte na úlohu v nástroji Enterprise Manager a zkontrolujte pole rozevíracího seznamu pole se seznamem vlastník.

    - nebo -

  • Msdb.dbo.sp_help_job systémovou uloženou proceduru spustit.
SQL Server 7.0

Vlastníka úlohy Určuje kontext zabezpečení, ve kterém je úloha spuštěna. Pokud úloha je vlastněna přihlášení, které není členem role serveru Sysadmin, balíček je spuštěn v kontextu účtu SQLAgentCmdExec a má práva a oprávnění daného účtu.

Účet SQLAgentCmdExecSQLAgentCmdExec, aby bylo možné spouštět úlohy, které se připojují k serveru SQL Server, musí mít správná oprávnění pro Windows nebo Windows NT a uděluje přístup pro přihlášení serveru SQL Server s oprávněními k příslušné databázi. SQLAgentCmdExec účet má obvykle žádná práva mimo z místního počítače serveru SQL Server. Proto libovolný balíček, který vyžaduje připojení k jinému počítači selže, je-li naplánováno jako úloha vlastněných přihlášení, které není členem Sysadmin role.

SQL Server 2000

Vlastníka úlohy Určuje kontext zabezpečení, ve kterém je úloha spuštěna. Pokud úloha je vlastněna přihlášení, které není členem role serveru Sysadmin, potom balíček je spuštěn v kontextu nastavení účtu jako klient SQL Agent serveru proxy a má práva a oprávnění daného účtu.

SQL agenta proxy moci spouštět úlohy, které se připojují k serveru SQL Server SQL agenta proxy účet musí mít správná oprávnění pro Windows nebo Windows NT a uděluje přístup pro přihlášení serveru SQL Server s oprávněními k příslušné databázi. Pro úlohy, které spuštění balíčku DTS musí mít ke čtení klienta SQL Agent serveru proxy a oprávnění k zápisu do dočasného adresáře klienta SQL Server Agent je spuštěn pod. Například
c:\Documents and Settings\ <account>\Local Settings\Temp
Pokud úloha je vlastněna účtu (přihlašovací jméno SQL Server nebo přihlášení ověřování systému Windows NT), který je členem Sysadmin role, SQL Agent úlohu spustí v kontextu účtu použitého ke spuštění služby SQL Agent.

Také Pokud vlastníkem úlohy je účet domény systému Windows NT a balíček je uložen v serveru SQL Server nebo SQL Server úložiště (nikoli jako soubor), je nutné spustit službu SQL Server pomocí účtu ze stejné domény nebo účet z důvěryhodné domény. Například případě úlohy SQL Agent je vlastněn účet z domény USA, pak účet použitý ke spuštění služby SQL Server musí být buď z USA domény nebo domény důvěřuje doména USA. SQL Server je-li spuštěná pomocí místního účtu, balíček se nepodařilo spustit.

Co určuje vlastníka?

Otázka: klepněte pravým tlačítkem na balíček, DTS A se zvolí možnost plánovat obalu, jak vlastníka přiřazena?

Odpověď: the vlastníka úlohy SQL Agent závisí na způsob, jakým SQL Server zapsána v nástroji Enterprise Manager. Pokud SQL Server pomocí ověřování systému Windows NT, vlastník naplánované úlohy je účet použitý ke spuštění služby SQL Agent. Pokud je SQL Server zaregistrován v SEM pomocí ověřování serveru SQL Server (například přihlášení přidružení zabezpečení), vlastník úlohy je tento stejné přihlášení serveru SQL Server.

Chcete-li změnit vlastnictví balíčku:
  1. Poklepejte na úlohu v nástroji Enterprise Manager.
  2. Klepněte na kartu Obecné a klepněte na příkaz vlastník rozevíracím seznamem.
Systémovou uloženou proceduru msdb.dbo.sp_update_job můžete také změnit vlastnictví balíčku.

Jak je spuštěno DTS balíčku?

Ručně spustíte-li balíček pomocí nástroje příkazového řádku DTSRun.exe, kontext zabezpečení je, že účtu systému Windows, je použita k přihlášení k počítači. Spustíte-li balíček pomocí DTSrun.exexp_cmdshell rozšířené uložené procedury, balíček je spustit v kontextu účtu použitého ke spuštění služby serveru SQL Server, za předpokladu, že uživatel, který provedeny xp_cmdshell je členem Sysadmin role. Uživatel, který provedeny xp_cmdshell není-li účet v roli Sysadmin, DTSRun.exe spuštěna v kontextu účtu SQLAgentCmdExec.

Pokud SQL Server byla spuštěna pomocí účtu Local System, balíček DTS nemá oprávnění z mimo počítači se systémem SQL Server.

Služby SQL Server je-li spuštěná pod účtem systému Windows NT, balíček má stejná práva a oprávnění jako tento účet systému Windows NT. Pokud tento účet systému Windows NT je účtem místního počítače (nikoli k účtu v doméně), balíček nemá žádná práva mimo daného počítače. Pokud účet systému Windows NT je účet domény, balíček pravděpodobně možné získat přístup k prostředkům v mnoha různých počítačích v této doméně.

Způsob ověření systému Windows NT provedených připojení?

Někdy DTS balíček obsahuje objekt, který vytvoří připojení ke zdroji dat pomocí ověřování systému Windows NT. Kontext zabezpečení pro toto připojení je stejný jako kontextu balíček, který je spuštěn. Jestliže balíček spustíte z příkazového řádku pomocí DTSRun.exe, je použita pověření účtu systému Windows NT aktuálně přihlášen in. Pokud spustíte balíček jako SQL Server Agent úlohu, pak integrované zabezpečení připojení pomocí účtu jste použili ke spuštění SQL Agent (za předpokladu, že vlastník balíček je členem Sysadmin role).

Běžné problémy

Zde je několik jiných běžných potíží, ke kterým může dojít při spuštění DTS balíčky jako naplánované úlohy v SQL Agent:

Namapované jednotky

Pokud balíček závisí na fyzické umístění souboru určené písmeno namapované jednotky, balíček může selhat při spuštění jako naplánovanou úlohu SQL Agent bez ohledu na to, kdo je vlastníkem balíčku. SQL Agent je služba systému Windows NT a služeb systému Windows NT nelze zobrazit písmena jednotek namapovaných. Mapování je součástí profilu uživatele, který je načítán při přihlášení uživatele k relaci systému Windows NT. Služby nepracují s profily uživatelů. Použijte cestu UNC místo písmeno namapované jednotky. Další informace o službě Proč nelze použít mapované jednotky získáte následujícím článku znalostní báze společnosti Microsoft:
180362INFORMACE: Služby a přesměrované jednotky

Relativní cesta

Relativní cesta (nebo písmeno jednotky) je specifický pro aktuální umístění balíčku (například C:\). Pokud balíček je určen na pracovní stanici a je pak naplánovány, umístění, ze kterého je spuštěno balíček změny. Cesty písmeno jednotky nyní odkazovat na jiné fyzické umístění je serveru. Pokud odkazovaný soubory budou přesunuty také na server, spuštění balíčku se nezdaří.

Součásti COM v skripty ActiveX

Pokud ve skriptu ActiveX se nazývají komponenty modelu COM (například volání objektů Microsoft ActiveX Data Objects (ADO), objekty RDO (Remote Data) nebo objekt podpory rozhodnutí (DSO)), označovaný jako součásti musí existovat na počítači, ze kterých je spuštěn DTS balíček. Spustíte-li balíček z Návrháře DTS v SEM nebo DTSRun.exe, komponenty musí existovat v počítači, ve kterém jsou usazeny. Balíček je-li naplánováno spouštění agentem SQL, nazývané součásti musí být načten v počítači, který je hostitelem serveru SQL Server.

Balíček zabezpečení

Balíčky DTS může mít vlastníka, hesla a uživatelská hesla. Tato hesla vliv, kdo může upravovat a spouštět balíčky. Žádná z těchto vliv kontextu zabezpečení, ve kterém je balíček spuštěn.

SQLAgentCmdExec oprávnění

Pokud úloha je provedena v kontextu účtu SQLAgentCmdExec a SQLAgentCmdExec účet nemá oprávnění přihlášení k serveru SQL Server, úloha se pravděpodobně nezdaří s následující chybovou zprávu:
DTSRun: načítání... DTSRun: prováděné... "Při spuštění" DTSRun: DTSStep_DTSExecuteSQLTask_1 DTSRun PřiChybě: DTSStep_DTSExecuteSQLTask_1, chyba = řetězec Chyba-2147217843 (80040E4D): přihlášení se nezdařilo pro uživatele 'NT_name\SQLAgentCmdExec'. Chyba zdroj: Microsoft OLE DB Provider for SQL Server naleznete v souboru nápovědy: kontextové nápovědy: 0 podrobné záznamy o chybách: Chyba:-2147217843 (80040E4D); Chyba zprostředkovatele: 18456 chyba řetězce (4818): přihlášení se nezdařilo pro uživatele 'NT_name\SQLAgentCmdExec'. Chyba zdroj: Microsoft OLE DB Provider for SQL Server naleznete v souboru nápovědy: kontextové nápovědy: 0 OnFinish DTSRun: DTSStep_DTSExecuteSQLTask_1 DTSRun: spuštění kompletní balíček. Ukončení procesu kód 1. V kroku se nezdařilo.
Je třeba udělit správné přihlašovací účet SQLAgentCmdExec a databázi oprávnění práva k serveru SQL Server.

Vlastnosti

ID článku: 269074 - Poslední aktualizace: 26. října 2007 - Revize: 3.6
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbmt kbproductlink kbinfo KB269074 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:269074

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