KB4512151 - แก้ไข: การละเมิดการเข้าถึงเกิดขึ้นเมื่อคุณใช้ฟังก์ชัน LOG กับแบบสอบถามระยะไกลใน SQL Server 2016 และ 2017

นำไปใช้กับ
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2017 Standard Windows SQL Server 2017 Standard Linux

อาการ

ลองทำตามสถานการณ์ต่อไปนี้:

  • คุณสร้างเซิร์ฟเวอร์ที่ลิงก์ใน Microsoft SQL Server 2016 หรือ 2017 ที่ชี้ไปยังอินสแตนซ์ระยะไกลของ SQL Server 2012 หรือเวอร์ชันที่ใหม่กว่า
  • คุณต้องการใช้ฟังก์ชัน LOG() โดยไม่ระบุฐานลอการิทึมอย่างชัดเจน (เพื่อคํานวณอัลกอริทึมธรรมชาติ)

เมื่อคุณเรียกใช้คิวรีที่เรียกใช้ LOG() ด้วยอาร์กิวเมนต์ที่อ้างอิงตารางระยะไกล ข้อผิดพลาดการละเมิดการเข้าถึงอาจเกิดขึ้นภายใต้เงื่อนไขบางอย่าง (ตัวอย่างเช่น: ถ้าคิวรีของคุณใช้ UNION และฟังก์ชันการรวม เช่น SUM())

นอกจากนี้ ไฟล์บันทึกข้อมูลจะถูกสร้างขึ้นบนอินสแตนซ์ภายในเครื่อง

ข้อความ 596, ระดับ 21, สถานะ 1, หมายเลข บรรทัด

ไม่สามารถดําเนินการต่อได้เนื่องจากเซสชันอยู่ในสถานะ kill

msg 0, ระดับ 20, สถานะ 0, หมายเลข บรรทัด

เกิดข้อผิดพลาดร้ายแรงในคําสั่งปัจจุบัน  ผลลัพธ์ ถ้ามี ควรละทิ้ง

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"

การแก้ปัญหา

ปัญหานี้ได้รับการแก้ไขในการอัปเดตแบบสะสมต่อไปนี้สําหรับ SQL Server:

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server:

การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:

การอ้างอิง

เรียนรู้เกี่ยวกับคำศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์