Sql-Server

數據庫主密鑰是否使用相同的密碼保護,是否相同?

  • November 16, 2017

正如這裡所說,備份數據庫主密鑰是一個很好的做法,因為當數據庫移動到另一個實例時,它將需要用於保護證書的原始 DMK,以便跳過加密內容的重新生成。

在數據庫備份加密的情況下,當DMKmaster與其餘用於備份加密的證書一起儲存在數據庫中時,我們是否需要創建DMK的備份?

另外,我想知道,正如它所說

創建時,主密鑰使用 AES_256 算法和使用者提供的密碼進行加密。

這是否意味著,如果我使用相同的密碼master在所有實例的數據庫中創建和保護每個 DMK,則密鑰將是相同的?

如果沒有,可以在一個數據庫上創建 DMK,並在所有實例上恢復它,以便在任何地方都有相同的密鑰,並且只需要備份一個密鑰嗎?

正如這裡所說,備份數據庫主密鑰是一個很好的做法,因為當數據庫移動到另一個實例時,它將需要用於保護證書的原始 DMK,以便跳過加密內容的重新生成。

這個答案實際上並不正確。遷移數據庫時,DMK 使用舊的 SMK密碼加密。您可以在新實例上使用密碼打開 DMK,並通過新 SMK 添加解密。這不需要您再次解密和加密受 DMK 保護的安全對象,因為實際的 DMK 密鑰沒有改變——只是保護它的原因。

在數據庫備份加密的情況下,當 DMK 儲存在主數據庫中,其餘證書用於備份加密時,我們是否需要創建 DMK 的備份?

取決於但很可能你不會直接需要它,除非發生了非常非常糟糕的事情。然後,您需要在另一個上恢復 DMK,但這也不理想、有趣或容易。如果您有主數據庫的備份,那麼它已經保存了 DMK,此外您還需要一個安全的地方來儲存密碼。由於 master 是一個特殊的數據庫,它的案例比使用者數據庫小得多。

這是否意味著,如果我使用相同的密碼在所有實例的主數據庫中創建和保護每個 DMK,則密鑰將相同?

不,使用了一個初始化向量,因此鍵不會相同。它不是基於使用的密碼。

如果沒有,可以在一個數據庫上創建 DMK,並在所有實例上恢復它,以便在任何地方都有相同的密鑰,並且只需要備份一個密鑰嗎?

肯定不行。電子郵件、網上銀行和夢幻足球賬戶中的所有內容都只有一個密碼可以嗎?可能不是。用一把鑰匙打開你的車、前門、郵箱、大門、銀行存款箱等可能不太好。

引用自:https://dba.stackexchange.com/questions/191041