Microsoft เผยแพร่ Microsoft SQL Server ๒๐๑๒แก้ไขในไฟล์ที่สามารถดาวน์โหลดได้หนึ่งไฟล์ เนื่องจากการแก้ไขจะสะสมแต่ละรุ่นใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการอัปเดตความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตล่าสุดของ SQL Server ๒๐๑๒รุ่นก่อนหน้า
อาการ
สมมติว่าคุณเรียกใช้กระบวนงานที่เก็บไว้หลาย xp_cmdshell ในเวลาเดียวกันในหลายเซสชันใน Microsoft SQL Server ๒๐๑๒ ในสถานการณ์นี้การดำเนินการครั้งแรกของกระบวนการ xp_cmdshell ที่เก็บไว้จะไม่เสร็จสมบูรณ์จนกว่าการดำเนินการล่าสุดเสร็จสมบูรณ์
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากจุดจับจะได้รับการสืบทอดมาจากกระบวนการที่เปิดอยู่เมื่อคุณเรียกใช้กระบวนงานที่เก็บไว้ xp_cmdshell ในเวลาเดียวกัน CreateProcess API จำเป็นต้องจัดการสิ่งที่สืบทอดเพื่อเปลี่ยนเส้นทางผลลัพธ์มาตรฐานและข้อความแสดงข้อผิดพลาด ถ้าหลาย executions ของกระบวนงานที่เก็บไว้ของ xp_cmdshell ทำงานในเวลาเดียวกันกระบวนการที่เปิดอยู่ใหม่จะสามารถสืบทอดจุดจับจากกระบวนการที่มีอยู่ได้ อย่างไรก็ตามกระบวนงานที่เก็บไว้ xp_cmdshell รอสำหรับจุดจับที่จะปิดโดยกระบวนการที่เปิดอยู่ทั้งหมด เมื่อมีหลายกระบวนการที่สืบทอดจุดจับ xp_cmdshell executions ทั้งหมดต้องรอจนกว่าจุดจับจะปิดโดยกระบวนการที่ทำงานยาวนานที่สุด
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ให้นำการอัปเดตที่สะสมต่อไปนี้ไปใช้ การอัปเดตนี้เพิ่มตัวเลือก CreateProcess API STARTUPINFOEX ที่ป้องกันไม่ให้การสืบทอดการจัดการสำหรับกระบวนการข้าม
ข้อมูลโปรแกรมอัปเดตสะสม
แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๑๒ Service Pack 1
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน1การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๑๒ Service Pack 1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๖๕๓๓๑ แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๑๒ Service Pack 1หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๗๗๒๘๕๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๑๒ Service Pack 1 ได้รับการเผยแพร่แล้ว
SQL Server 2012
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน4การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๑๒ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๕๘๖๘๗ แพคเกจโปรแกรมปรับปรุงที่สะสม4สำหรับ SQL Server ๒๐๑๒หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๖๙๒๘๒๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๑๒
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน CreateProcess ให้ไปที่เว็บไซต์ MSDN ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับฟังก์ชัน CreateProcessสำหรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนงานที่เก็บไว้ xp_cmdshell ให้ไปที่เว็บไซต์ MSDN ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับกระบวนงานที่เก็บไว้ xp_cmdshell สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่คล้ายกันให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๓๑๕๙๓๙ PRB: ลูกที่สืบทอดจุดจับที่ไม่ได้ตั้งใจระหว่างการโทร CreateProcess