Microsoft phân phối Microsoft SQL Server 2008 và Microsoft SQL Server 2008 R2 bản sửa lỗi như là một tải về tệp. Vì các bản sửa lỗi mang tính tích lũy, nên mỗi bản phát hành mới đều chứa tất cả các hotfix, đồng thời tất cả bản vá bảo mật đều được đưa vào phiên bản sửa lỗi SQL Server 2008 hoặc SQL Server 2008 R2.
Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn sử dụng mã hóa dữ liệu trong suốt trên cơ sở dữ liệu trong SQL Server 2008 hay trong Microsoft SQL Server 2008 R2.
-
Bạn vô hiệu hóa mã hóa cho cơ sở dữ liệu.
-
Sao lưu cơ sở dữ liệu ngay sau khi bạn tắt mã hóa.
-
Bạn cố gắng khôi phục cơ sở dữ liệu trên một phiên bản của SQL Server bằng cách sử dụng sao lưu.
Trong trường hợp này, hoạt động khôi phục không thành công và bạn nhận được thông báo lỗi tương tự như sau:
System.Data.SqlClient.SqlError: File "< tên cơ sở dữ liệu > _log" không thể khởi động bình thường. Kiểm tra Nhật ký lỗi chi tiết. (Microsoft.SqlServer.Smo)
Tuy nhiên, lỗi đăng nhập có chi tiết. Nếu bạn loại bỏ khóa mã hóa cho cơ sở dữ liệu trước khi bạn sao lưu cơ sở dữ liệu, bạn nhận được thông báo lỗi khi bạn cố gắng khôi phục cơ sở dữ liệu:
System.Data.SqlClient.SqlError: Không thể tìm thấy chứng chỉ máy chủ với vân tay '0xCB62FF76463A6BF86E8F769B541BA6483AFC2FF2'. (Microsoft.SqlServer.Smo)
Giải pháp
Thông tin Cập Nhật tích luỹ
SQL Server 2008 gói dịch vụ 1
Sửa chữa cho vấn đề này được phát hành đầu tiên 10 Cập Nhật tích luỹ cho SQL Server 2008 gói dịch vụ 1. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2279604 Gói Cập Nhật tích lũy 10 cho SQL Server 2008 gói dịch vụ 1Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Microsoft khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
970365 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 1 Microsoft SQL Server 2008 hotfix được tạo cho gói dịch vụ SQL Server cụ thể. Bạn phải áp dụng một hotfix SQL Server 2008 gói dịch vụ 1 cho cài đặt SQL Server 2008 gói dịch vụ 1. Theo mặc định, bất kỳ hotfix nào được cung cấp trong gói dịch vụ máy chủ SQL được bao gồm trong gói dịch vụ tiếp theo của SQL Server.
SQL Server 2008 gói dịch vụ 2
Sửa chữa cho vấn đề này lần đầu tiên phát hành tích lũy Update 1 cho SQL Server 2008 gói dịch vụ 2. Để biết thêm thông tin về gói Cập Nhật tích luỹ này, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2289254 Cập Nhật tích luỹ 1 dành cho SQL Server 2008 gói dịch vụ 2Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả bản vá bảo mật được đính kèm với trước SQL Server 2008 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2402659 Phiên bản SQL Server 2008 đã được phát hành sau khi SQL Server 2008 gói dịch vụ 2
SQL Server 2008 R2
Sửa chữa cho vấn đề này lần đầu tiên được phát hành tích lũy Update 4. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này dành cho SQL Server 2008 R2, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2345451 Gói Cập Nhật tích luỹ 4 cho SQL Server 2008 R2 Chú ý Bởi vì các bản xây dựng tích lũy, mỗi sửa chữa mới phát hành chứa tất cả các hotfix và tất cả các bản vá bảo mật được đính kèm với trước SQL Server 2008 R2 sửa chữa phát hành. Chúng tôi khuyên bạn xem xét việc áp dụng bản vá mới nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
981356 SQL Server 2008 R2 xây dựng mà đã được phát hành sau khi SQL Server 2008 R2
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Các bước để tái tạo sự cố
-
Tạo một khoá chính. Dưới đây là mẫu mã tạo khoá chính:
use masterCreate Master Key encryption by password = 'Password01!';go
-
Tạo hoặc có chứng chỉ bảo vệ bằng khoá chính. Dưới đây là mẫu mã tạo ra một chứng chỉ bảo vệ bằng khoá chính:
create certificate cert_testDB_encryptDEK authorization dbowith subject='Certificate to encrypt the DEK of testDB'
-
Tạo cơ sở dữ liệu mới, tạo một khóa mã hóa cơ sở dữ liệu và sau đó bảo vệ chính bằng chứng chỉ. Dưới đây là mẫu mã tạo cơ sở dữ liệu mới, tạo ra một khóa mã hóa cơ sở dữ liệu, và sau đó là bảo vệ chính bằng cách sử dụng chứng chỉ:
create Database testDBuse testDBCreate database encryption key with algorithm=AES_128encryption by server certificate cert_testDB_encryptDEK
-
Thiết lập cơ sở dữ liệu sử dụng mã hoá. Dưới đây là mẫu mã đặt cơ sở dữ liệu sử dụng mã hoá:
Alter database testDB set encryption on
-
Vô hiệu hóa mã hóa cho cơ sở dữ liệu. Dưới đây là mẫu mã vô hiệu hóa mã hóa cho cơ sở dữ liệu:
Alter database testDB set encryption off
-
Sao lưu cơ sở dữ liệu, và sau đó khôi phục một phiên bản của SQL Server.
Tham khảo
Để biết thêm thông tin về mã hoá dữ liệu trong suốt (TDE), ghé thăm website sau của Microsoft Developer Network (MSDN):
Thông tin chung về TDEĐể biết thêm thông tin về mô hình dịch vụ gia tăng dành cho SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
935897 Một mô hình dịch vụ gia tăng có sẵn từ nhóm SQL Server để cung cấp các bản sửa lỗi được báo cáo sự cốĐể biết thêm thông tin về giản đồ đặt tên cho bản Cập Nhật SQL Server, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
822499Giản đồ đặt tên mới cho gói cập nhật phần mềm Microsoft SQL ServerĐể biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft