Tôi đang thiết lập một thử nghiệm trong đó tôi chỉ có phần khóa công khai của chứng chỉ trên máy chủ. Chứng chỉ được tạo trên một máy chủ khác và tôi không khôi phục khóa riêng.
Khi tôi cố gắng sao lưu cơ sở dữ liệu bằng mã hóa bằng chứng chỉ đó, tôi gặp lỗi này:
Msg 15556, Level 16, State 1, Line 15
Cannot decrypt or encrypt using the specified certificate, either because it has no private key or because the password provided for the private key is incorrect.
Msg 3013, Level 16, State 1, Line 15
BACKUP DATABASE is terminating abnormally.
Đó là SQL Server rõ ràng cho tôi biết nó cần khóa riêng để mã hóa.
Nhưng tại sao vậy?
Tôi hiểu rằng BACKUP tạo khóa đối xứng nhanh chóng, bảo vệ khóa đối xứng bằng khóa chung trong chứng chỉ và lưu trữ cùng với nội dung sao lưu. Khóa đối xứng sau đó được sử dụng để mã hóa nội dung sao lưu thực tế, vì mã hóa đối xứng thường nhanh hơn (luôn luôn?) So với mã hóa bất đối xứng.
Để khôi phục bản sao lưu, sau đó tôi sẽ cần khóa riêng tương ứng với khóa chung được sử dụng trong mã hóa. Đó là mong đợi.
Tôi không hiểu tại sao cần có khóa riêng trong quá trình sao lưu. Không tìm thấy câu trả lời trên tài liệu hoặc bất cứ nơi nào khác. Ai đó có thể giải thích điều đó hoặc chỉ cho tôi một số tài liệu về lý do tại sao đó là trường hợp?