sql-server - SQL Server 2005 - 在不同的服务器上恢复加密的数据库

标签 sql-server sql-server-2005 encryption symmetric-key

我已经备份了一个加密的数据库(对称 key /证书)和
在不同的服务器上恢复它。

不幸的是,我们在解密方面遇到了问题......希望
有人可以帮忙。

在恢复的数据库中,我可以看到对称 key 和证书
SSMS,但是当我尝试使用证书打开 key 时(开放对称
key KeyA 由证书 CertB 解密)我得到
以下非常描述性的错误:

消息 15466,级别 16,状态 1,第 1 行
解密过程中发生错误。

有任何想法吗?

提前致谢。

最佳答案

http://blogs.msdn.com/lcris/archive/2007/11/16/sql-server-2005-restoring-the-backup-of-a-database-that-uses-encryption.aspx回答这个:

“当您恢复使用加密功能的数据库时,您只需要注意一件事——如果数据库主 key (DbMK) 需要服务主 key (SMK) 加密,您需要重新生成此加密。请注意,这个加密是在你创建 DbMK 时默认进行的,但如果你想更严格地控​​制对加密数据的访问,它可能会被故意丢弃。无论如何,如果你确实对 DbMK 有这样的 SMK 加密,重新生成它的步骤是下列:

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'
ALTER MASTER KEY 通过服务主 key 添加加密
关闭主键

就是这样 - 数据库加密功能现在应该像备份时一样工作。另请注意,是否在进行备份的服务器上或其他地方恢复数据库都没有关系。对于此过程,唯一重要的是您知道保护 DbMK 的密码之一“

关于sql-server - SQL Server 2005 - 在不同的服务器上恢复加密的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/209927/

相关文章:

sql-server-2005 - 通过 SSIS 上传之前验证数据

sql-server - 如何在不聚合列的情况下对 sql 数据进行透视

git - 如何加密文件并将其存储在 LFS 上?

sql - 为什么 JSON 导入表显示所有空值?

sql-server - 外键 Entity Framework 6 在依赖表中插入 null

php - Mysql DELETE 查询在 PMA 中有效,但在我的 PHP 脚本中无效

sql-server - 在 MS SQL Server 中将日期存储为整数是否有任何性能优势

c# - 如何将此 C# Rijndael 加密转换为 PHP?

java - 保护客户端代码

sql - 如何从前一行获取最后一个非空值