database - SQL Server 2012 TDE 恢复证书问题

标签 database sql-server-2012 tde

我有两个 SQL Server 2012 Enterprise 实例,但很难从实例一到实例二的一组备份(完整备份、差异备份和日志备份)中恢复 TDE 数据库。我收到错误“找不到带指纹的服务器证书”。

实例一和实例二都有具有相同密码的主 key ,我已从实例一备份证书和私有(private)文件并恢复到实例二。如果我查看实例 2 上主数据库的“安全”>“证书”文件夹,我可以看到它已列出。

如果我尝试恢复,尽管已导入相同的证书并且该证书存在,但我仍然收到错误“无法找到带指纹的服务器证书”,有人可以建议下一步该怎么做吗?

如果我再次尝试重新导入证书,我会收到消息“名称为“ServerCert”的证书已存在,或者该证书已添加到数据库中。”

我还尝试从备份集中恢复/替换实例一上的数据库,它们可以工作,只是恢复到实例二时不行。

任何帮助将不胜感激:-)

最佳答案

尽管多次重试相同的过程,但我删除了所有实例中的 TDE、证书和主 key ,并从头开始,但重新备份数据库除外。尽管所有密码和证书名称都相同,但仍然没有乐趣。

然后,我删除了所有实例中的 TDE、证书和主 key ,重新启动了两个实例,然后创建了主 key ,然后创建了证书,重新应用了 TDE,然后在实例上执行了所有新的完整备份、差异备份和事务日志备份一。备份实例一的证书,然后在实例二创建相同的主 key ,导入实例一的备份证书,然后执行数据库恢复,一切顺利。

我的 T-SQL 没有任何改变,我唯一能想到的是某种安全性未能正确应用,可能是 tempdb 问题。

我读过其他人也有同样的问题,我希望这对其他人有帮助。

关于database - SQL Server 2012 TDE 恢复证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20950555/

相关文章:

javascript - 使用 Node 管理 mongoDB 连接的正确方法是什么?

sql-server - 如何在SQL Server 2012中部署现有的SSIS包?

Oracle 透明数据加密未解密访问

database - InnoDB : Error: space header page consists of zero bytes in data file ./ibdata1

database - 在没有 Doctrine 的情况下在 Symfony2 中创建实体

php - 如何在php中为循环创建数据库

sql - 只进行一行操作来插入和其他更新?

sql - 无法使用实例名称连接到 SQL Server

mysql - 在 Windows Server 2008 R2 中的 MySQL 上使用 TDE

sql-server - SQL Server 2008 R2 Enterprise 180天试用版-透明数据加密(TDE)错误