2008-09-29 58 views
7

我有一個現有的SQL Server 2005數據庫,其中包含使用對稱密鑰加密的數據。對稱密鑰使用密碼打開。我正在升級到使用此數據庫的前端應用程序,其中包括添加數十個新表,存儲過程,UDF等,以及對現有表和數據庫對象的幾十個修改。爲此,我製作了現有開發數據庫的副本,以便在新開發發生時獨立支持,維護和更新當前系統。如何在SQL Server 2005數據庫之間傳輸sql加密數據?

什麼是複製數據庫的好方法?通常,我會對現有數據庫進行備份,然後將其還原到新數據庫。但是,鑑於加密數據,這是否可行?我是否仍然可以使用現有的對稱密鑰和密碼對新數據庫中的數據進行加密和更重要的解密?

我反而想用DTS來傳輸現有的模式。在新數據庫中創建一個新的對稱密鑰/密碼。然後編寫臨時查詢來傳輸數據,使用現有密鑰/密碼進行解密,並在新數據庫中使用新密鑰/密碼進行加密。

我想這個的核心是對稱密鑰是否適用於加密/解密單個數據庫或同一服務器上的許多數據庫中的數據?

回答

3

您所指的對稱密鑰是數據庫主密鑰(DMK)。它們保留在數據庫級別,因此備份/恢復到另一臺SQL服務器應該可以正常工作(不同服務帳戶的注意事項,這thread暗示)

在您做任何事之前,請確保您有備份你的鑰匙(想必你已經這樣做了):

USE myDB 
GO 
BACKUP MASTER KEY TO FILE = 'path_to_file' 
    ENCRYPTION BY PASSWORD = 'password' 
GO 

從這個article

當你創建一個數據庫主密鑰, 副本與所提供的 加密密碼並保存在當前的 數據庫中。使用服務主密鑰還將副本 加密並將 存儲在主數據庫中。 的副本DMK允許服務器自動解密DMK, 功能被稱爲「自動密鑰 管理」。如果沒有自動密鑰管理 ,你必須使用OPEN MASTER KEY語句和每一個你希望的時間提供一個 密碼 加密和/或解密使用 證書和密鑰依賴於 DMK安全數據。使用自動密鑰 管理,開放主密鑰 聲明和密碼不是 必需的。

+0

感謝米奇,非常有用。是的,備份到新數據庫的恢復工作。我能夠解密以前在舊數據庫中加密的新數據庫中的數據。 – Jon 2008-09-30 12:22:42

相關問題