我试图将加密数据库从默认服务器复制到我的服务器以进行测试
但是因为我从来没有做过这样的麻烦 所以我要解释我的程序和我得到的错误
首先我创建一个主密钥:
USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='DB-PaSSw0rD'
GO
现在一切都很好:
命令已成功完成。
然后我通过导入在默认服务器上创建的证书来创建证书:
CREATE CERTIFICATE TDECERT
FROM FILE = 'C:\temp\TDECert.cer'
WITH PRIVATE KEY (FILE = 'C:\temp\TDECertKey.pvk' ,
DECRYPTION BY PASSWORD ='pAssW0rD')
GO
但我明白了:
消息15581,级别16,状态1,行1
请在执行此操作之前在数据库中创建主密钥或在会话中打开主密钥。
要解决此问题,我尝试打开主密钥:
OPEN MASTER KEY DECRYPTION BY PASSWORD ='DB-PaSSw0rD'
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY
但我得到: 无法找到对称密钥'主密钥',因为它不存在或您没有权限。
然后解决第二个问题我尝试授予它访问权限:
GRANT CONTROL ON CERTIFICATE :: TDECERT To Administrator
但我明白了:
无法找到证书'TDECERT',因为它不存在或您没有权限。
提前感谢你的时间
答案 0 :(得分:3)
问题解决了
我所要做的就是添加
USE大师
之前
CREATE CERTIFICATE TDECERT
FROM FILE = 'C:\temp\TDECert.cer'
WITH PRIVATE KEY (FILE = 'C:\temp\TDECertKey.pvk' ,
DECRYPTION BY PASSWORD ='pAssW0rD')
GO
并且不需要任何其他东西
那很简单!