Sql-Server
AE 證書是否同時包含主密鑰和加密密鑰?
設置 Always Encrypted 後,我可以在目前使用者中看到證書
選擇時
select * from sys.column_master_keys
在 key_path 下我看到了這個位置,但是沒有為加密密鑰指定位置。那麼僅此證書導出就足夠了嗎?它是否在同一個證書中同時包含主密鑰和加密密鑰?
謝謝
設置 Always Encrypted 後,我可以在目前使用者中看到證書
正確,您已聲明將在此處創建/儲存列主密鑰 (CMK)。這很可能是通過 GUI 完成的,以生成新密鑰並將其保存在那裡。CMK 還有其他選項。
$$ … $$在 key_path 下我看到了這個位置,但是沒有為加密密鑰指定位置。
正確,這是對存在 CMK 的 SQL Server 執行元數據更新時使用的位置。由於 SQL Server 不會去接觸該證書(它不應該在伺服器中),它只知道將什麼作為元數據發送回客戶端驅動程序。該證書包含一個非對稱密鑰對,用於加密和解密儲存在同一數據庫中的 SQL Server 內部的列加密密鑰 (CEK)。
那麼僅此證書導出就足夠了嗎?
假設 AE 設置正確,客戶端只需要該證書,是的。顯然,獲取所述元數據需要數據庫級別的權限,但如果您沒有 CMK 的副本,那麼整個過程就沒有實際意義。
它是否在同一個證書中同時包含主密鑰和加密密鑰?
不,正如我所說,有 CMK,它是您創建的證書,然後有 CEK,它對數據進行實際加密和解密。
您需要返回閱讀有關Always Encrypted 及其工作原理的更多資訊,因為這一切都在文件中進行了解釋。