在渗透测试期间,我发现了一个 MSSQL 数据库的多个 .bak 文件。我想全部恢复。在 Windows VM 中,我安装了 SQL Server 2017。为了恢复主数据库,我将服务器置于单用户模式并尝试如下恢复数据库(也通过 SSMS 尝试了相同的方法):
RESTORE DATABASE master
FROM DISK = 'C:\Foo\<path>\master.bak'
WITH MOVE 'master' TO 'C:\Foo\master.mdf',
MOVE 'master_log' TO 'C:\Foo\master_log.ldf',
REPLACE
GO
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,如:
.. 无法恢复,因为它是由与此服务器 (14...) 不同版本的服务器 (13.00.4435) 创建的。
然后,我通过订阅 my.visualstudio.com 上的“Visual Studio Dev Essentials”下载了带有 Service Pack 1 的 MSSQL 2016。现在我得到了错误:
.. 无法恢复,因为它是由与此服务器 (13.00.4001) 不同版本的服务器 (13.00.4435) 创建的。
所以现在我需要更新。我下载了 MSSQL 2016 服务包 2,它给了我错误:
.. 无法恢复,因为它是由与此服务器 (13.00.5026) 不同版本的服务器 (13.00.4435) 创建的。
所以我似乎真的需要确切的补丁。但是,我找不到对应服务器版本的补丁列表。有没有人知道如何找到合适的补丁?
如果我能将 .bak 文件提取到它的 .mdf- 和 .ldf 文件就足够了。我找到了一堆用于恢复 MSSQL .bak 文件的工具,但希望它们都想连接到数据库(进行简单的恢复)。如果我能获得正确的 SQL Server …