![SQL-加密数据库](https://linux22.com/image/546167/SQL-%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E5%BA%93.png)
我已经从实时环境中获取备份并尝试在本地机器上使用它。实时中的数据库已使用密钥加密。
我已将数据库还原到 localbox,但无法运行任何存储过程,因为我遇到以下问题
Please create a master key in the database or open the master key in the session before performing this operation.
有人遇到过这个问题吗?你是如何解决的?你能一步一步提供答案吗?
我知道实时数据库加密的密码。
答案1
现场的数据库是用密钥加密的。
我认为你的意思是数据库正在使用透明数据库加密。将 TDE 数据库移动到另一台服务器的过程描述如下将 TDE 保护的数据库移动到另一个 SQL Server,它涉及通过备份用于加密 TDE 密钥的证书来明确移动数据库加密密钥,该证书先前从实时服务器备份:
在实时服务器上:
BACKUP CERTIFICATE ...
TO FILE = '...'
WITH PRIVATE KEY
(
FILE = '...',
ENCRYPTION BY PASSWORD = ...'
);
GO
在本地服务器上:
CREATE CERTIFICATE ...
FROM FILE = '...'
WITH PRIVATE KEY
(
FILE = '...',
DECRYPTION BY PASSWORD = '...'
);
GO
有了证书,本地 SQL Server 将能够解密 TDE 数据库。
如果您不是在谈论 TDE,那么您需要解释“数据库用密钥加密”是什么意思。