Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 尝试还原加密数据库时遇到问题_Database_Sql Server 2008_Restore_Database Restore_Encryption - Fatal编程技术网

Database 尝试还原加密数据库时遇到问题

Database 尝试还原加密数据库时遇到问题,database,sql-server-2008,restore,database-restore,encryption,Database,Sql Server 2008,Restore,Database Restore,Encryption,我正在尝试将加密数据库从默认服务器复制到我的服务器以进行测试 但是我做这件事有困难,因为我从来没有做过 所以我要解释一下我的程序和错误 首先,我创建一个主密钥: USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD ='DB-PaSSw0rD' GO 现在一切都好: 命令已成功完成。 然后,通过导入在默认服务器上创建的证书来创建证书: CREATE CERTIFICATE TDECERT FROM FILE = 'C:\temp\TDEC

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

但是我做这件事有困难,因为我从来没有做过 所以我要解释一下我的程序和错误

首先,我创建一个主密钥:

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
但我得到:
Msg 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”,因为它不存在或您没有权限。

提前感谢您抽出时间解决问题

我所要做的就是添加

使用主机

以前

CREATE CERTIFICATE TDECERT
FROM FILE = 'C:\temp\TDECert.cer'
WITH PRIVATE KEY (FILE = 'C:\temp\TDECertKey.pvk' , 
DECRYPTION BY PASSWORD ='pAssW0rD')
GO
而且不需要任何其他东西

那容易