微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将 Service Master Key 恢复到开发者版,但可以恢复到 localdb

如何解决无法将 Service Master Key 恢复到开发者版,但可以恢复到 localdb

我需要将服务主密钥从服务器恢复到我的本地数据库。这适用于 sql Server Express 的 (localdb)\mssqlLocalDB 数据库,但不适用于同一台机器上的 sql Server Developer 版本。

我用这个 sql 语句来恢复密钥:

ALTER SERVICE MASTER KEY REGENERATE 
GO

RESTORE SERVICE MASTER KEY 
FROM FILE = N'\\exported_servicemasterkey' 
DECRYPTION BY PASSWORD = 'my_password'
FORCE
GO

我在恢复步骤中遇到错误

消息 15317,级别 16,状态 2,第 4 行
主密钥文件不存在或格式无效。

我确定文件在那里,而且格式正确。它正在使用 localDB。

  • LocalDB 是 15.0.2000 版。
  • 开发者版本为 15.0.2000.5。

解决方法

原题中的exported_servicemasterkey文件是网络位置。显然,运行 localDB 的帐户 (NT Service\MSSQL$SQLEXPRESS) 可以访问此位置。运行开发者版 (NT Service\MSSQLSERVER) 的帐户无权访问该位置。 我处理了从网络位置到我的驱动器的文件。在此之后恢复工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。