我正在寻找对称密钥加密的替代方案,以便将敏感数据存储在Microsoft SQL数据库中。原因是几天前我在夜间(凌晨3点)发生错误,数据库响应了我的状态调用,用于后端的运行状况检查,错误
当前命令发生严重错误。结果(如果有的话)应该被丢弃。
(我用于健康检查的电话只调用我的休息API - 通过Web服务到数据库,从Member 中选择count(*)并返回计数。)
在该错误之后,每次使用来自数据库的敏感数据的api调用返回
请在执行此操作之前在数据库中创建主密钥或在会话中打开主密钥。
我的监控服务表示后端自动在2分钟后再次启动,但主密钥不再工作了。我用以下命令修复它
open master key decryption by password = 'password'
alter master key add encryption by service master key
所以我试图在数据库中轻松存储敏感数据(必须能够再次解密),并且无需手动执行任何操作即可实现故障切换。
感谢您的投入!
答案 0 :(得分:1)
我认为我正在阅读的是您正在使用某种HA技术(例如可用性组)。如果是这种情况,则需要注意确保拓扑的两端都可以打开数据库主密钥。
幸运的是,这样做很容易。您可以备份和还原服务主密钥(SMK)。因此,您将从辅助节点备份SMK并将其还原到主节点。 SQL Server将解密当前使用旧密钥加密的任何内容,并使用新密钥重新加密。