【问题标题】:SQL 2014 remove or fix master key issueSQL 2014 删除或修复主密钥问题
【发布时间】:2016-08-29 23:18:05
【问题描述】:

长话短说,我如何才能将数据库返回到它从未有任何主密钥、证书等的点?

当前加密的数据是测试数据,所以我不需要保留它。

我分离了数据库并将其移至未来的生产服务器,但没有做我应该做的所有事情来让它工作。

这是我尝试过的方法和结果:

  1. 从旧服务器备份现有主密钥并恢复到新服务器 -原来我丢失了密码。所以我又加了一个。 -备份没问题 - 无法将文件复制到 google 驱动器(这是我将东西传送到服务器的唯一方法),也无法移动文件,甚至无法通过电子邮件发送或打开它,收到我没有权限的消息。尝试了 3 种不同的备份。

状态:废弃

  1. 在生产主密钥、新证书、新对称密钥上创建新密码。来源:https://mattsql.wordpress.com/2012/11/13/migrating-sql-server-databases-that-use-database-master-keys/ -失败 - 不记得错误。

状态:废弃

  1. 重新生成密钥 -ALTER 主密钥通过密码加密重新生成 - 似乎不起作用,不记得确切的错误。

状态:废弃

  1. 删除所有内容,阅读所有内容 -每https://sqlsailor.com/2012/01/03/drop-master-key-understanding-encryption-hierarchy/

DROP DATABASE ENCRYPTION KEY
DROP CERTIFICATE TDECertificate
DROP MASTER KEY

状态:在家用机器上工作,能够让一切正常运行,但那是原始设置的机器,因此它没有以目前的生产方式损坏。计划今晚在生产中试用这个(我每晚只能远程工作大约一个小时)

在主密钥和加密方面,我还需要做些什么才能将其恢复到开箱即用的状态吗?我是否也需要重新生成服务主密钥(我想我可以做到)

【问题讨论】:

  • 我总是从 T-SQL 脚本构建一个数据库,我将其置于源代码控制之下。要在生产服务器上安装数据库,我会使用脚本创建它以确保获得全新安装。
  • 我不会争辩。我希望我已经做到了,但现在我可能会被困在试图解决当前问题而不是删除数据库并重新开始。例如,我的数据库备份脚本是在添加加密之后完成的,所以据我所知,这会让我回到同样的问题。
  • 您的家用计算机上还有工作副本吗?如果是这样,您应该能够使用 SSMS 为数据库中的每个对象生成脚本,然后根据需要进行检查和编辑。给出一个想法,有多少张桌子等?
  • 哦,我想只有 10 张桌子。可能有 30 个存储过程。

标签: sql-server encryption


【解决方案1】:

我怀疑您问错了问题,因为“我怎样才能将数据库返回到没有键的位置?”的答案。就是放下所有的钥匙。您还说您不关心加密数据,因为它是测试数据。但是,如果您的目标是将加密从您的系统迁移到生产系统并且它在您的系统上运行,那么您需要将数据库主密钥备份到文件并将其恢复到生产数据库。您没有保留用于加密 SQL Server 中的密钥的原始密码这一事实无关紧要,因为在创建 DMK 时,系统还使用服务主密钥对其进行了加密。当您备份 DMK 时,系统可以为您解密密钥,而无需您提供原始密码。除非您明确执行命令删除服务主密钥加密,否则您可以将 DMK 备份到文件,提供加密文件的密码,将文件迁移到生产系统并使用之前提供的文件加密密码恢复它。或者您可以删除所有密钥并重建加密层次结构,为密钥和证书提供相同的名称。

【讨论】:

    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多