Sql server 从sql server数据库中删除主密钥要求
我们将数据库从一个环境恢复到另一个环境。原始环境正在使用TDE,新环境已禁用此功能: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
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中的证书。你确定你有权这样做吗?