0
與「Use SQL Certificate from another database」中的問題非常相似,但是這次我將數據庫移動到另一臺服務器。如何移動必要的證書,以確保相同的代碼仍然有效?將加密列移動到不同的服務器
EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')
與「Use SQL Certificate from another database」中的問題非常相似,但是這次我將數據庫移動到另一臺服務器。如何移動必要的證書,以確保相同的代碼仍然有效?將加密列移動到不同的服務器
EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')
實際上,您的證書在您的數據庫備份中。
另外 - 大多數情況下,您的證書都由數據庫主密鑰加密。所以你需要的是讓你的數據庫主密鑰(DMK)在目標實例上工作。
默認情況下,DMK受密碼AND服務主密鑰(SMK)保護。並且默認情況下,密鑰會自動打開。這意味着,如果您有權使用證書,則在需要時自動解密。
就新實例而言,您的SMK不同,它不會自動發生。但您可以通過密碼打開DMK。所以你需要 - 移動你的數據庫,打開主密鑰,修改它,它是由新服務器SMK msdn加密的。
您需要在新的實例做什麼:
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'your password (from previous instance)'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
難道這是答案嗎? http://www.sql-questions.com/microsoft/SQL-Server-Security/30238935/master-key-issue.aspx –