INF: วิธีการที่เรียกใช้เป็นแพคเกจ DTS เป็นงานที่กำหนดเวลาไว้

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 269074 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

มีปัญหาบ่อยครั้งคุณอาจพบกับแพคเกจบริการแปลงข้อมูล (DTS) ถูกเรียกว่า แพคเกจ DTS ใช้ว่างข้อผิดพลาดจากโปรแกรมจัดการไซต์องค์กรของ SQL เซิร์ฟเวอร์ แต่แพคเกจ DTS ล้มเหลวเมื่อมีการจัดกำหนดการให้รันเป็นงาน โดยทั่วไป ซึ่งเกิดเนื่องจากความแตกต่างกันในบริบทการรักษาความปลอดภัยเมื่อแพคเกจที่รันเป็นงานและเมื่อรันในแพคเกจ interactively

บทความนี้อธิบายถึงปัญหาด้านความปลอดภัยเกี่ยวข้องในการเรียกใช้แพคเกจ DTS

ข้อมูลเพิ่มเติม

เงื่อนไขบางอย่างที่ใช้ในบทความนี้ประกอบด้วย:
ยุบตารางนี้ขยายตารางนี้
เงื่อนไขคำอธิบาย:
dtsบริการการแปลงข้อมูล
การรับรองความถูกต้องของ sqlระบบความปลอดภัยที่ใช้ในการล็อกอินของ Microsoft SQL Server และรหัสผ่าน
การรักษาความปลอดภัยมาตรฐานดูการรับรองความถูกต้องของ SQL
การรับรองความถูกต้องของ sql Serverดูการรับรองความถูกต้องของ SQL
การรับรองความถูกต้องของ Microsoft Windows NTเมื่อผู้ใช้เชื่อมต่อผ่านบัญชีผู้ใช้ Microsoft Windows, SQL Server สามารถตรวจสอบตรวจว่า ชื่อบัญชีผู้ใช้และรหัสผ่านถูกสอบเมื่อผู้ใช้เข้าสู่ระบบในคอมพิวเตอร์ใช้ Microsoft Windows NT, Microsoft Windows 2000, Microsoft Windows 95 หรือ Microsoft Windows 98
การรักษาความปลอดภัยแบบรวมดูการรับรองความถูกต้องของ Microsoft Windows NT
ตรวจสอบใน windows NT หรือ Microsoft Windows 2000ดูการรับรองความถูกต้องของ Microsoft Windows NT
บัญชีของ Microsoft Windows NT หรือเข้าสู่ระบบเท่ากับล็อกอินของ Windows หรือบัญชีเท่ากับบัญชีการเข้าสู่ระบบ Microsoft Windows NT หรือบัญชีการเข้าสู่ระบบ Microsoft Windows 2000
บริษัทตัวแทนของ sqlบริการตัวแทนของเซิร์ฟเวอร์ sql
semโปรแกรมจัดการไซต์องค์กรเซิร์ฟเวอร์ sql

ซึ่งเป็นแพคเกจ DTS ที่ทำงานได้อย่างไร

ปัญหาหนึ่งที่มีรายงานบ่อยเกี่ยวกับแพคเกจ DTS คือ ความแตกต่างในลักษณะการทำงานเมื่อแพ็คเกจการรันโปรแกรมจากการ SQL องค์กรจัดการและเมื่อมีการจัดกำหนดการแพคเกจ DTS เป็นงาน เมื่อคุณเรียกใช้แพคเกจจากผู้ออกแบบ DTS ใน SQL องค์กร Manager (SEM), แพคเกจที่กำลังทำงานบนคอมพิวเตอร์ที่คุณกำลัง seated ถ้าคุณอยู่ในเซิร์ฟเวอร์ (จริง หรือ ผ่านซอฟต์แวร์การเข้าถึงระยะไกล), แพคเกจจะรันบนเซิร์ฟเวอร์ ถ้าคุณกำลัง seated ที่เวิร์กสเตชัน และคุณได้ลงทะเบียนเซิร์ฟเวอร์ SQL Server ในตัวจัดการองค์กร แล้วแพคเกจจะรันบนเวิร์กสเตชัน บริบทการรักษาความปลอดภัยของแพคเกจไม่ว่า ของบัญชีผู้ใช้ Windows NT คุณใช้ในการเข้าสู่ระบบในคอมพิวเตอร์เครื่องนั้น เมื่อรันในแพคเกจเป็นงานตามกำหนดการ แพคเกจที่จะรันบนเซิร์ฟเวอร์เสมอ

บ่อยครั้ง นักพัฒนาสร้าง และทดสอบแพคเกจ DTS interactively บนเวิร์กสเตชันของตนเองโดยผู้ออกแบบ DTS ในตัวจัดการองค์กร หลังจากที่ debugged แพคเกจ DTS แพคเกจถูกจัดตารางเวลาเป็นงานแล้ว ซึ่งเปลี่ยนตำแหน่งที่ตั้งของแพคเกจจากเวิร์กสเตชันของผู้พัฒนาไปยังเซิร์ฟเวอร์ ถ้าแพคเกจถูกโหลดข้อมูลข้อความลงใน SQL Server แพคเกจล้มเหลวจนกว่าแฟ้มข้อความและเส้นทางไปยังแฟ้มที่มีอยู่บนเซิร์ฟเวอร์ ถ้าแพคเกจถูกเชื่อมต่อไปยังเซิร์ฟเวอร์อื่น แพคเกจล้มเหลวหากบริบทการรักษาความปลอดภัยของงานไม่สนับสนุนการเชื่อมต่อ

ผู้เป็นเจ้าของงานที่รันชุด DTS หรือไม่

แพคเกจโปรแกรมจะกำหนดตารางเวลา โดยการสร้างงานที่ถูกจัดการ โดยบริการตัวแทนของ SQL งานนี้ เป็นใด ๆ อื่นจัดกำหนดการงาน มีเจ้าของ เจ้าของอาจเข้าสู่ระบบของเซิร์ฟเวอร์ SQL หรือบัญชีผู้ใช้ Windows NT

เมื่อต้องการกำหนดเจ้าของ:
  • คลิกสองครั้งที่งานในตัวจัดการองค์กร และจากนั้น ดูOwner:กล่องคำสั่งผสมหล่นลง

    หรือ

  • เรียกใช้การmsdb.dbo.sp_help_jobระบบการจัดเก็บกระบวนการ
sql Server 7.0

บริบทการรักษาความปลอดภัยที่ทำงานถูกกำหนด โดยเจ้าของงาน ถ้างานคือของล็อกอินที่ไม่ใช่สมาชิกของSysadminบทบาทเซิร์ฟเวอร์ จากแพคเกจจะทำงานภายใต้บริบทของSQLAgentCmdExecบัญชีผู้ใช้ และมีสิทธิ์และสิทธิ์ของบัญชีนั้น

สำหรับSQLAgentCmdExecเมื่อต้องการไม่สามารถเรียกใช้งานที่เชื่อมต่อกับ SQL Server,SQLAgentCmdExecบัญชีต้องมีสิทธิ์ของ Windows/NT เหมาะสม และได้รับการเข้าสู่ระบบในการเข้าถึงไปยัง SQL Server ด้วยสิทธิ์ฐานข้อมูลที่เหมาะสม กระบวนการSQLAgentCmdExecบัญชีโดยทั่วไปมีสิทธิ์ไม่มีอยู่ภายนอกของเครื่องคอมพิวเตอร์ SQL Server ดังนั้น แพคเกจที่ต้องการเชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นไม่ ถ้ามีการจัดกำหนดการเป็นเป็นเจ้าของล็อกอินที่ไม่ใช่สมาชิกของบทบาท Sysadmin งาน

SQL Server 2000

The security context in which the job is run is determined by the owner of the job. If the job is owned by a login that is not a member of the Sysadmin server role, then the package is run under the context of the account setup as the SQL Agent Proxy Account, and has the rights and permissions of that account.

For SQL Agent Proxy to be able to run jobs that connect to SQL Server, the SQL Agent Proxy account must have proper Windows/NT permissions and be granted login access to SQL Server with appropriate database permissions. For the jobs that execute a DTS package, the SQL Agent Proxy Account must have read and write permissions to the temp directory of the Account the SQL Server Agent is running under. ตัวอย่าง:
c:\Documents and Settings\<account>\Local Settings\Temp </account>
If the job is owned by an account (either a SQL Server login or a Windows NT authenticated login) that is a member of theSysadminrole, the SQL Agent job runs under the context of the account used to start the SQL Agent service.

Also, if the job is owned by a Windows NT domain account and if the package is stored in the SQL Server or SQL Server repository (not as a file), you must start the SQL Server service by using an account from the same domain or an account from a trusted domain. For example, if the SQL Agent job is owned by an account from the USA domain, then the account used to start the SQL Server service must be either from the USA domain or a domain trusted by the USA domain. If the SQL Server is started using a local account, the package fails to run.

What Determines the Owner?

คำถาม: When you right-click the DTS package and you choose to schedule the package, how is the owner assigned?

Answer: The owner of the SQL Agent job depends on how the SQL Server is registered in the Enterprise Manager. If the SQL Server is registered using a Windows NT authentication, the owner of the scheduled job is the account used to start the SQL Agent service. If the SQL Server is registered in SEM using SQL Server authentication (for example, theSAlogin), the owner of the job is that same SQL Server login.

To change the ownership of the package:
  1. Double-click the job in Enterprise Manager.
  2. คลิกการทั่วไปแท็บ และจากนั้น คลิกการOwner:drop-down combo box.
คุณยังสามารถใช้การmsdb.dbo.sp_update_jobsystem stored procedure to change the ownership of the package.

How is the DTS Package Launched?

If you manually run a package by using theDTSRun.execommand line utility, the security context is that of the Windows account you used to log in to the computer. If you run the package by usingDTSrun.exethrough thexp_cmdshellextended stored procedure, the package is run in the context of the account used to start the SQL Server service, provided that the user that executedxp_cmdshellis a member of theSysadminrole. If the user that executedxp_cmdshellis not an account in theSysadminrole, thenDTSRun.exeruns in the context of theSQLAgentCmdExecaccount.

If the SQL Server was started using theLocal Systemaccount, the DTS package has no permissions outside of the computer that is running SQL Server.

If the SQL Server service is started under a Windows NT account, the package has the same rights and permissions as that Windows NT account. If that Windows NT account is a local machine account (as opposed to a domain account), the package does not have any rights outside of that computer. If the Windows NT account is a domain account, the package may be able to access resources on many different computers on that domain.

How are Windows NT-authenticated Connections Made?

Sometimes a DTS package contains an object that makes a connection to a data source using Windows NT authentication. The security context used for this connection is the same as the context of the package that is running. If the package is run from a command prompt by usingDTSRun.exe, the credentials of the currently logged-in Windows NT account is used. If the package is run as a SQL Server Agent job, then the integrated security connection is made using the account you used to start SQL Agent (assuming that the owner of the package is a member of theSysadminrole).

Common Problems

Here are a few other common problems you might encounter when you run DTS packages as scheduled jobs in SQL Agent:

Mapped Drives

ถ้าแพคเกจใช้ตำแหน่งที่ตั้งทางกายภาพของแฟ้มที่ถูกกำหนด โดยตัวอักษรของไดรฟ์ที่แมป แพคเกจอาจล้มเหลวเมื่อมีรันเป็นกำหนดเวลาไว้บริษัทตัวแทนการ SQL งาน โดยไม่คำนึงถึงของผู้เป็นเจ้าของแพคเกจ บริษัทตัวแทนการ sql คือ บริการ Windows NT และ Windows NT บริการไม่สามารถดูอักษรชื่อไดรฟ์ที่แมป การแมปที่เป็นส่วนหนึ่งของโปรไฟล์ของผู้ใช้ที่โหลดเมื่อผู้ใช้ล็อกอินไปยังเซสชัน Windows NT บริการไม่สามารถใช้งานได้กับโพรไฟล์ผู้ใช้ ใช้เส้นทาง UNC แทนตัวอักษรของไดรฟ์ที่แมปไว้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุการบริการไม่สามารถใช้กับไดรฟ์ที่แมปไว้ คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
180362ข้อมูล: บริการและการเปลี่ยนเส้นทางไดรฟ์

เส้นทางสัมพัทธ์

เส้นทางสัมพัทธ์ (หรือตัวอักษรชื่อไดรฟ์) ได้เฉพาะตำแหน่งที่ตั้งปัจจุบันของแพคเกจ (เช่น C:\) ถ้าเป็นแพคเกจออกแบบมาบนเวิร์กสเตชัน และจัดกำหนดการแล้ว ไว้ ที่ตั้งที่แพคเกจจะเรียกใช้การเปลี่ยนแปลง เส้นทางของตัวอักษรไดรฟ์อ้างอิงตำแหน่งทางกายภาพที่แตกต่างกัน ในขณะนี้ของเซิร์ฟเวอร์ นอกจากว่ายังแฟ้มที่มีการอ้างอิงถูกย้ายไปยังเซิร์ฟเวอร์ การดำเนินการกับแพคเกจล้มเหลว

คอมโพเนนต์ของ COM ในสคริปต์ ActiveX

ถ้ามีการเรียกว่าคอมโพเนนต์ COM (ตัวอย่างเช่น โทรศัพท์ไปยังวัตถุวัตถุข้อมูล ActiveX ของ Microsoft (ADO), ออปเจ็กต์ข้อมูลระยะไกล (RDO), หรือออบเจ็กต์สนับสนุนตัดสินใจ (DSO)) ในสคริปต์การ ActiveX คอมโพเนนต์ที่เรียกว่าจะต้องอยู่บนคอมพิวเตอร์ที่กำลังรันแพคเกจ DTS ถ้าคุณเรียกใช้แพคเกจจากผู้ออกแบบ DTS ใน SEM หรือDTSRun.exeส่วนประกอบต้องการมีอยู่บนคอมพิวเตอร์ที่คุณกำลัง seated ถ้ามีการจัดกำหนดการแพคเกจถูกเรียกใช้ โดยบริษัทตัวแทนการ SQL คอมโพเนนต์ที่เรียกว่าจะต้องโหลดในคอมพิวเตอร์ที่เป็นโฮสต์ของ SQL Server

ความปลอดภัยของแพคเกจ

แพคเกจ DTS สามารถมีรหัสผ่านเจ้าของและรหัสผ่านของผู้ใช้ รหัสผ่านเหล่านี้มีผลต่อการที่สามารถแก้ไข และเรียกใช้แพคเกจนี้ ใช่เหล่านี้มีผลกับบริบทการรักษาความปลอดภัยที่รันในแพคเกจ

การอนุญาต SQLAgentCmdExec

ถ้ามีดำเนินงานภายใต้บริบทของSQLAgentCmdExecบัญชี และSQLAgentCmdExecบัญชีไม่มีสิทธิ์ในการล็อกอินไปยัง SQL Server งานอาจล้มเหลว ด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้:
DTSRun: การโหลด... DTSRun: ดำเนินการ... DTSRun OnError DTSStep_DTSExecuteSQLTask_1 DTSRun OnStart:: DTSStep_DTSExecuteSQLTask_1 ข้อผิดพลาด =สายอักขระของข้อผิดพลาด (80040E4D) -2147217843: เข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT_name\SQLAgentCmdExec' แหล่งข้อผิดพลาด: ผู้ Microsoft OLE DB ให้สำหรับแฟ้มวิธีใช้ของ SQL Server: วิธีใช้บริบท: ระเบียนรายละเอียดเกี่ยวกับข้อผิดพลาด 0: ข้อผิดพลาด: -2147217843 (80040E4D); ข้อผิดพลาดของผู้ให้บริการ: 18456 สายอักขระของข้อผิดพลาด (4818): เข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'NT_name\SQLAgentCmdExec' แหล่งข้อผิดพลาด: ผู้ Microsoft OLE DB ให้สำหรับแฟ้มวิธีใช้ของ SQL Server: วิธีใช้บริบท: OnFinish DTSRun 0: DTSRun DTSStep_DTSExecuteSQLTask_1: แพ็คเกจการดำเนินการเสร็จสมบูรณ์ จบการทำงานของกระบวนการรหัส 1 ขั้นตอนล้มเหลว
คุณต้องการให้สิทธิการSQLAgentCmdExecบัญชีการเข้าสู่ระบบที่เหมาะสมและฐานข้อมูลสิทธิ์ในการอนุญาตกับ SQL Server

คุณสมบัติ

หมายเลขบทความ (Article ID): 269074 - รีวิวครั้งสุดท้าย: 8 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Keywords: 
kbproductlink kbinfo kbmt KB269074 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:269074

ให้ข้อเสนอแนะ

 

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