Encryption 将加密列移动到其他服务器

Encryption 将加密列移动到其他服务器,encryption,sql-server-2008-r2,certificate,Encryption,Sql Server 2008 R2,Certificate,很像“”中的问题,但这次,我将数据库移动到另一台服务器。如何移动必要的证书,以保证相同的代码仍然有效 EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData') 实际上,您的证书在数据库备份中 此外,您的证书很可能是由数据库主密钥加密的。所以,您需要的是使数据库主密钥(DMK)在目标实例上工作 默认情况下,DMK由密码和服务主密钥(SMK)保护。默认情况下,密钥将自动打开。这意味着,若您有权使用该证书,它将在您需要时自动解密 由于在新实例上,

很像“”中的问题,但这次,我将数据库移动到另一台服务器。如何移动必要的证书,以保证相同的代码仍然有效

EncryptByCert(Cert_ID('CertifiacteName'), 'SecretData')

实际上,您的证书在数据库备份中

此外,您的证书很可能是由数据库主密钥加密的。所以,您需要的是使数据库主密钥(DMK)在目标实例上工作

默认情况下,DMK由密码和服务主密钥(SMK)保护。默认情况下,密钥将自动打开。这意味着,若您有权使用该证书,它将在您需要时自动解密

由于在新实例上,您的SMK是不同的,它不能自动发生。但您可以通过密码打开DMK。所以你们需要的是——移动你们的数据库,打开主密钥,修改它,让它被新的服务器SMK加密

在新实例上需要执行的操作:

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'your password (from previous instance)'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
这可能是答案吗?