KB2300689 - การแก้ไข: คุณไม่สามารถคืนค่าข้อมูลสํารองของฐานข้อมูลบนอินสแตนซ์อื่นของ SQL Server ได้ถ้าคุณปิดใช้งานการเข้ารหัสลับข้อมูลแบบโปร่งใสก่อนที่คุณจะสร้างข้อมูลสํารองใน SQL Server 2008 หรือใน SQL Server 2008 R2

นำไปใช้กับ
SQL Server 2008 Service Pack 2 SQL Server 2008 R2

Microsoft แจกจ่ายการแก้ไข Microsoft SQL Server 2008 และ Microsoft SQL Server 2008 R2 เป็นไฟล์เดียวที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขเป็นแบบสะสม การเผยแพร่ใหม่แต่ละรายการจะมีโปรแกรมแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไข SQL Server 2008 หรือ SQL Server 2008 R2 รุ่นก่อนหน้า

อาการ

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

  • คุณใช้การเข้ารหัสลับข้อมูลแบบโปร่งใสบนฐานข้อมูลใน SQL Server 2008 หรือ Microsoft SQL Server 2008 R2
  • คุณปิดใช้งานการเข้ารหัสลับสําหรับฐานข้อมูล
  • คุณจะสํารองฐานข้อมูลทันทีหลังจากที่คุณปิดใช้งานการเข้ารหัสลับ
  • คุณพยายามคืนค่าฐานข้อมูลบนอินสแตนซ์อื่นของ SQL Server โดยใช้การสํารองข้อมูล

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

หมายเหตุ

System.Data.SqlClient.SqlError: ไฟล์ "<ชื่อฐานข้อมูล>_log" ไม่สามารถเตรียมใช้งานอย่างถูกต้อง ตรวจสอบบันทึกข้อผิดพลาดเพื่อดูรายละเอียดเพิ่มเติม (Microsoft.SqlServer.Smo)

อย่างไรก็ตาม บันทึกข้อผิดพลาดไม่มีรายละเอียด

ถ้าคุณเอาคีย์การเข้ารหัสลับสําหรับฐานข้อมูลออกก่อนที่คุณจะสํารองฐานข้อมูล คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณพยายามคืนค่าฐานข้อมูล:

หมายเหตุ

System.Data.SqlClient.SqlError: ไม่พบใบรับรองเซิร์ฟเวอร์ที่มีลายนิ้วมือ '0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2' (Microsoft.SqlServer.Smo)

การแก้ปัญหา

ข้อมูลการอัปเดตสะสม

SQL Server 2008 Service Pack 1

การแก้ไขสําหรับปัญหานี้ถูกปล่อยออกมาครั้งแรกในการอัปเดตสะสม 10 สําหรับ SQL Server 2008 Service Pack 1 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงสะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2279604 แพคเกจการปรับปรุงสะสม 10 สําหรับ SQL Server 2008 Service Pack 1 หมายเหตุเนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่แต่ละรุ่นจะมีโปรแกรมแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขของ SQL Server 2008 รุ่นก่อนหน้า Microsoft ขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

970365 SQL Server 2008 builds ที่วางจําหน่ายภายหลัง SQL Server 2008 Service Pack 1 โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 สร้างขึ้นสําหรับ SQL Server Service Pack เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 1 กับการติดตั้ง SQL Server 2008 Service Pack 1 ตามค่าเริ่มต้น โปรแกรมแก้ไขด่วนใดๆ ที่มีอยู่ใน Service Pack ของ SQL Server จะรวมอยู่ใน SQL Server Service Pack รุ่นถัดไป

SQL Server 2008 Service Pack 2

การแก้ไขปัญหานี้เปิดตัวครั้งแรกในการอัปเดตสะสม 1 สําหรับ SQL Server 2008 Service Pack 2 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงสะสมนี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2289254 การปรับปรุงสะสม 1 สําหรับ SQL Server 2008 Service Pack 2 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่ๆ ที่เผยแพร่ใหม่แต่ละรายการจะมีโปรแกรมแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขของ SQL Server 2008 รุ่นก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2402659 รุ่น SQL Server 2008 ที่วางจําหน่ายภายหลัง SQL Server 2008 Service Pack 2

SQL Server 2008 R2

การแก้ไขสําหรับปัญหานี้เผยแพร่ครั้งแรกในการอัปเดตสะสม 4 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2008 R2 นี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2345451 แพคเกจการปรับปรุงสะสม 4 สําหรับ SQL Server 2008 R2 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่แต่ละรุ่นจะมีโปรแกรมแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไข SQL Server 2008 R2 ก่อนหน้านี้ เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

981356 รุ่น SQL Server 2008 R2 ที่วางจําหน่ายภายหลัง SQL Server 2008 R2

สถานะ

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

ขั้นตอนในการจําลองปัญหาให้เกิดขึ้นอีกครั้ง

  1. สร้างมาสเตอร์คีย์ ต่อไปนี้เป็นตัวอย่างของรหัสที่สร้างคีย์หลัก:

    use master
    Create Master Key encryption by password = 'Password01!';
    go
    
  2. สร้างหรือรับใบรับรองที่ได้รับการป้องกันโดยคีย์หลัก ต่อไปนี้เป็นตัวอย่างของรหัสที่สร้างใบรับรองที่ได้รับการป้องกัน โดยคีย์หลัก:

    create certificate cert_testDB_encryptDEK  authorization dbo
    with subject='Certificate to encrypt the DEK of testDB'
    
  3. สร้างฐานข้อมูลใหม่ สร้างคีย์การเข้ารหัสลับฐานข้อมูล แล้วปกป้องคีย์ด้วยใบรับรอง ต่อไปนี้เป็นตัวอย่างของโค้ดที่สร้างฐานข้อมูลใหม่ ที่สร้างคีย์การเข้ารหัสลับฐานข้อมูล แล้วป้องกันคีย์โดยใช้ใบรับรอง:

    create Database testDB
    use testDB
    Create database encryption key 
    with algorithm=AES_128
    encryption by server certificate cert_testDB_encryptDEK  
    
    
  4. ตั้งค่าฐานข้อมูลให้ใช้การเข้ารหัสลับ ต่อไปนี้เป็นตัวอย่างของโค้ดที่ตั้งค่าฐานข้อมูลให้ใช้การเข้ารหัสลับ:

    Alter database testDB set encryption on 
    
    
  5. ปิดใช้งานการเข้ารหัสลับสําหรับฐานข้อมูล ต่อไปนี้เป็นตัวอย่างของรหัสที่ปิดใช้งานการเข้ารหัสลับสําหรับฐานข้อมูล:

    Alter database testDB set encryption off 
    
    
  6. สํารองฐานข้อมูล จากนั้นคืนค่าข้อมูลสํารองใน SQL Server เวอร์ชันอื่น

การอ้างอิง

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการเข้ารหัสลับข้อมูลแบบโปร่งใส (TDE) โปรดเยี่ยมชมเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:

ข้อมูลทั่วไปเกี่ยวกับ TDE สําหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการให้บริการที่เพิ่มขึ้นสําหรับ SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

935897 แบบจําลองการให้บริการที่เพื่มขึ้นมีไว้ให้สําหรับทีมงาน SQL Server เพื่อจัดเตรียมโปรแกรมแก้ไขสําหรับปัญหาที่มีการรายงาน

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งชื่อ Schema สําหรับการอัปเดต SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

822499 รูปแบบการตั้งชื่อใหม่สําหรับชุดโปรแกรมอัปเดตซอฟต์แวร์ Microsoft SQL Server สําหรับข้อมูลเพิ่มเติมเกี่ยวกับคําศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

824684 คําอธิบายเกี่ยวกับคําศัพท์มาตรฐานที่ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์ของ Microsoft