2

我试图将加密数据库从默认服务器复制到我的服务器以进行测试

但我这样做有麻烦,因为我从来没有做过,所以我要解释我的程序和我得到的错误

首先我创建一个主密钥:

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”,因为它不存在或者您没有权限。

提前感谢您的时间

4

1 回答 1

3

问题解决了

我所要做的就是添加

使用大师

CREATE CERTIFICATE TDECERT
FROM FILE = 'C:\temp\TDECert.cer'
WITH PRIVATE KEY (FILE = 'C:\temp\TDECertKey.pvk' , 
DECRYPTION BY PASSWORD ='pAssW0rD')
GO

并且不需要其他任何东西

就这么简单!

于 2011-08-17T13:00:52.100 回答