Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Sql server 从sql server数据库中删除主密钥要求_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 从sql server数据库中删除主密钥要求

Sql server 从sql server数据库中删除主密钥要求,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我们将数据库从一个环境恢复到另一个环境。原始环境正在使用TDE,新环境已禁用此功能: SELECT *, db_name(database_id), encryption_state FROM sys.dm_database_encryption_keys database_id encryption_state ----------- ---------------- 7 1 10 1

我们将数据库从一个环境恢复到另一个环境。原始环境正在使用TDE,新环境已禁用此功能:

SELECT *, db_name(database_id), encryption_state  
FROM sys.dm_database_encryption_keys

database_id encryption_state
----------- ---------------- 
7           1                
10          1                
但是,数据库在联机之前仍然需要在主密钥下打开。出现以下错误:

Msg 15581,16级,状态3,第3行 执行此操作之前,请在数据库中创建主密钥或在会话中打开主密钥

数据库可以通过以下方式重新联机:

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'xxx';
alter database ally_orgunit set online

如何完全消除这些数据库对主密钥的需求?

因此,您想知道如何绕过您拥有的数据库的关键安全机制。只是我们不知道你拥有这个数据库。当你说数据库离线时,是TDE阻止它在线吗?如果是,请将用于保护源服务器上数据库加密密钥的证书备份并还原到目标服务器。证书将同时存在于源和目标的master中。@AaronBertrand-不,我有密钥,打开密钥后可以打开数据库。我的问题是,现在我已经在DB encryption_state=1上禁用了加密,我如何删除对主密钥的依赖关系。@BenThul-密钥已经安装在目标服务器上-这就是我打开的,我有实际的“xxx”密码。但我不明白为什么我需要在这两个数据库中的任何一个不再启用加密。您提到了数据库附带的密钥,我提到了驻留在master中的证书。你确定你有权这样做吗?