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

Can't restore Service Master Key to developer edition, but can to 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

我在还原步骤中遇到错误:

Msg 15317, Level 16, State 2, Line 4
The master key file does not exist or has invalid format.

我确定文件在那里,而且格式正确。它在 localDB 上工作。

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