サーバーに証明書の公開鍵部分のみを置く実験を設定しています。証明書は別のサーバーで生成され、私は秘密鍵を復元しませんでした。
その証明書を使用して暗号化してデータベースをバックアップしようとすると、次のエラーが発生します。
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.
これは、SQL Serverから、暗号化には秘密キーが必要であることを明確に伝えています。
しかし、それはなぜですか?
私の理解では、BACKUPは対称キーをオンザフライで生成し、証明書の公開キーを使用して対称キーを保護し、バックアップコンテンツと一緒に保存します。対称暗号化は通常、(常に?)非対称暗号化より高速であるため、対称鍵を使用して実際のバックアップコンテンツを暗号化します。
バックアップを復元するには、暗号化で使用される公開鍵に対応する秘密鍵が必要です。予想通りです。
バックアップ操作中に秘密キーが必要な理由がわかりません。ドキュメントや他の場所で回答が見つかりませんでした。誰かがそれを説明したり、なぜそうなのかについてのドキュメントを私に指摘したりできますか?
バックアップ操作中に秘密キーが必要な理由がわかりません。
これが現在実装されている方法です。
他のすべての呼び出しで必要かどうかを確認するためにすべての依存関係を調べたわけではありませんが(論理的には、データを暗号化する必要はなく、すでに述べたように復号化するだけです)、それがチェックされ、したがって、現在どのように記述および実装されているかを考えると、エラーになります。
バックアップ操作を実行するために同じサーバーまたは複数のサーバーにキーを配置することが心配な場合は、 統合するHSMの使用を検討することをお勧めします バックアップ暗号化あり。
暗号化キーを拡張キー管理(EKM)プロバイダーと統合できます。