อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีฟังก์ชัน CLR ของ SQL ใน SQL Server 2016 และ 2017
-
ฟังก์ชัน CLR เรียกใช้คําสั่ง Transact-SQL ผ่านการเรียกการเลียนแบบ เช่น โดยการเรียกคําสั่ง EXECUTE AS
ในสถานการณ์สมมตินี้ การดําเนินการล้มเหลว และคุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
Msg 6522, ระดับ 16, สถานะ 1, Procedure PrcedureName, บรรทัด 0 [Batch Start LineNumber]
เกิดข้อผิดพลาด.NET Framework ระหว่างการดําเนินการกิจวัตรที่ผู้ใช้กําหนดหรือรวม "ProcedureName":
System.Data.SqlClient.SqlException: หลักเซิร์ฟเวอร์ "LoginName" ไม่สามารถเข้าถึงฐานข้อมูล "DatabaseName" ภายใต้บริบทความปลอดภัยปัจจุบันได้
การแก้ไข
การแก้ไขนี้รวมอยู่ในการอัปเดตสะสม 1 สําหรับ SQL Server 2017
ข้อมูล Service Pack สําหรับ SQL Server 2016
ปัญหานี้ได้รับการแก้ไขแล้วใน Service Pack ต่อไปนี้สําหรับ SQL Server:
เกี่ยวกับรุ่น SQL Server 2017
แต่ละรุ่นใหม่สําหรับ SQL Server 2017 ประกอบด้วยการแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่อยู่ในรุ่นก่อนหน้า เราขอแนะนําให้คุณติดตั้งรุ่นล่าสุดสําหรับ SQL Server 2017
Service Pack เป็นแบบสะสม Service Pack ใหม่แต่ละตัวจะมีการแก้ไขทั้งหมดที่อยู่ใน Service Pack รุ่นก่อนหน้า พร้อมกับการแก้ไขใหม่ๆ คําแนะนําของเราคือการใช้ Service Pack ล่าสุดและการอัปเดตแบบสะสมล่าสุดสําหรับ Service Pack นั้น คุณไม่จําเป็นต้องติดตั้ง Service Pack รุ่นก่อนหน้าก่อนที่คุณจะติดตั้ง Service Pack รุ่นล่าสุด ใช้ตารางที่ 1 ในบทความต่อไปนี้สําหรับการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Service Pack ล่าสุดและการอัปเดตแบบสะสมล่าสุด
วิธีการตรวจสอบเวอร์ชัน รุ่น และระดับการอัปเดตของ SQL Server และคอมโพเนนต์
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
เรียนรู้เกี่ยวกับ คําศัพท์ ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์