2010-05-10 43 views
0

我在我的一臺SQL服務器(2008)上創建了非對稱密鑰。我加密了一個密碼字段,並且我能夠在我的開發服務器上很好地檢索到該密碼。SQL加密 - 非對稱密鑰 - 第二服務器

問題在我需要將這些數據移動到生產服務器時發揮作用。

下面是創建的關鍵代碼:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='#########' 
CREATE ASYMMETRIC KEY UserEncryptionKey 
WITH ALGORITHM = RSA_2048 

現在,當我在生產服務器上運行它,它創建的鍵就好了。但是,當我運行我的sproc獲取密碼時,它將返回NULL。

SQL:

SELECT EncryptByAsymKey(AsymKey_ID('UserEncryptionKey'), Password) 
    FROM Users WHERE UserName = '######' 

我需要什麼做的就是加密領域在多個SQL服務器的工作有什麼想法?

請讓我知道,如果我需要澄清的東西。

謝謝

回答

0

不要將加密數據從數據庫移到另一個數據庫。從技術上講是可能的,真實的,但你可能會損害過程中的關鍵,所以我寧願不告訴你如何去做。

當數據在站點之間交換時,通常的過程將密鑰管理和部署與數據傳輸分開。數據在傳輸之前被解密,並且使用專用的數據傳輸加密方案(如TLS和SSL),消除了部署和共享實際加密密鑰的問題。

Asa方面說明,通常不會使用非對稱密鑰加密數據。數據操作的速度太慢。大家做的是他們用對稱密鑰加密數據,然後用非對稱密鑰加密對稱密鑰。

+0

好,太好了,謝謝! – CodeLikeBeaker 2010-05-13 13:53:44