环境:赢取2012和SQL 2014标准版。
问题:我每天都会将生产数据库还原到我们的测试服务器中。生产数据库具有加密密钥。恢复到测试服务器是一个每晚运行的SQL作业。
已尝试的项目:我尝试在sql作业中包含一个步骤来解密测试环境中的密钥:通过密码打开主密钥解密=''。我尝试使用EXEC,sp_executesql并将命令嵌入存储过程中。当我打开管理工作室并手动运行命令时,唯一真正有用的东西。
作业的结果:作业成功运行但什么也没做。我添加日志记录,没有任何错误指示。所有日志都说是Begin Executing。
问题:有没有人知道我如何通过密码=''来嵌入开放的主密钥解密?步入sql job所在的命令与工作。
答案 0 :(得分:1)
我认为您遇到的问题是您在该会话中成功打开了主密钥,但其他会话却看不到。您随后需要使用测试服务器的服务主密钥重新加密数据库主密钥。幸运的是,一旦你用密码打开密钥(就像你已经拥有的那样),它就像以下一样简单:
alter master key add encryption by service master key;
此外,您不应该在open master key…
声明中做任何奇特的事情。也就是说,无需将其包装在sp_executesql
或其中任何一个中。