无法将 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 上工作。
- LocalDB 的版本是 15.0.2000。
- 开发者版本是 15.0.2000.5.
原问题中的exported_servicemasterkey文件是一个网络位置。显然,帐户 运行 localDB (NT Service\MSSQL$SQLEXPRESS) 可以访问此位置。帐户 运行 开发者版 (NT Service\MSSQLSERVER) 无权访问该位置。
我将文件从网络位置复制到我的驱动器。在此之后恢复成功。
我需要将服务主密钥从服务器恢复到我的本地数据库。这适用于 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 上工作。
- LocalDB 的版本是 15.0.2000。
- 开发者版本是 15.0.2000.5.
原问题中的exported_servicemasterkey文件是一个网络位置。显然,帐户 运行 localDB (NT Service\MSSQL$SQLEXPRESS) 可以访问此位置。帐户 运行 开发者版 (NT Service\MSSQLSERVER) 无权访问该位置。 我将文件从网络位置复制到我的驱动器。在此之后恢复成功。