2011-01-06 70 views
1

請考慮下圖顯示SQL Server中使用的加密層次結構。請注意第一個藍色塊,它表示SMK使用DPAPI加密。 DPAPI使用當前登錄的用戶憑證(+更多)來加密數據,因此它是特定於計算機的。這意味着SMK(以及DMK和任何派生密碼)將是特定於計算機的(實際上它是由SQL Server的設置生成的)。 OTOH,我可以在SQL Server中創建/備份X.509證書(使用CREATE CERTIFICATE,BACKUP CERTIFICATE等)。在SQL Server 2008中加密和存儲敏感數據

場景/問題:

我正在開發一個Web應用程序需要加密和數據庫中的列存儲CC信息。我需要在另一臺機器上訪問這些數據,以便在另一臺機器上恢復數據庫時,實際上可以讀取數據庫備份(儘管對於有權訪問上述證書的人員)。

我想知道當SMK特定於當前的SQL Server實例時,我應該如何在另一臺機器上恢復備份?一旦他們在另一臺機器上恢復後,我應該如何訪問這些加密數據?

更新:糾正我,如果我錯了! 我們可以使用BACKUP SERVICE MASTER KEY TO FILE命令來備份當前使用的SMK。但是,使用RESTORE SERVICE MASTER KEY FROM FILE命令,可以在任何其他SQLServer上(在同一臺計算機上/在同一臺計算機上)恢復此密鑰。當SMK恢復時,它將再次使用DPAPI加密,以便密鑰本身可以存儲在機器上的某個位置。

任何幫助,將高度讚賞,

Encryption Hierarchy

+0

您是否閱讀過您引用的MSDN鏈接中標題爲「DPAPI *中的密鑰備份和恢復」一節?這有幫助嗎? – dajames 2011-01-10 13:48:45

回答

0

該圖顯示一證書既可以由DMK或經由密碼保護。如果你只用密碼保護它,它應該是便攜式的。

+0

我不認爲這是正確的......證書是公開數量,通常不會被加密。 – dajames 2011-01-10 13:50:54