我刚刚开始尝试加密备份,我想我现在理解它并且已经使该过程正常工作,但是还原时发生了一些奇怪的事情。
在服务器 A(SQL 2014 标准)上,我创建了一个新的主密钥和证书,并成功生成了一个加密的 bak 文件,并且还导出了密钥和证书文件。
在服务器 B (SQL 2014 Developer) 上,我已成功从服务器 A 恢复主密钥和证书。
我知道这些工作正常,因为我可以使用以下语法将加密的 bak 文件成功恢复到两台服务器:
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'xxx';
RESTORE DATABASE testDb FROM DISK = 'C:\testDb.bak' WITH STATS = 5;
CLOSE MASTER KEY;
但在 SSMS 中使用“还原数据库”工具时,情况就不一样了。
恢复到服务器 A 时它工作正常。
但是当使用 UI 恢复到服务器 B 时,它只会给出一条基本消息“没有选择要恢复的备份集”。
为什么会这样?
更新:我刚刚注意到在使用命令恢复备份时,如果我先打开主密钥,它只会在服务器 B 上工作,否则它会给出消息Please create a master key in the database or open the master key
。
在服务器 AI 上不需要这样做,就好像服务器 A 上的密钥始终打开一样