0

我刚刚安装了Sql Server Management Studio 2017 (v17.0) 的最新版本,以便在Ubuntu 16.04上连接到全新的SQL SERVER vNEXT

于是,我尝试恢复经典的NORTHWND数据库,只是为了测试环境,但系统返回错误。

尽管我使用的是 sa登录,但系统给了我对该文件夹(.bak文件所在的位置)的访问权限错误。/var/opt/mssql/data/

错误消息是: Cannot access the specified path or file on the server. Verify that you have the necessary security privileges and that the path or file exists.

我已经检查了该文件夹的访问权限,并且它已正确设置为用户mssql,事实上,如果我使用SSMS 2014,使用相同的登录名,我可以毫无问题地恢复该数据库。

我想知道它是否毕竟不是SSMS 2017的错误。

顺便说一句,我的配置是:

服务器:

  • 使用 Vagrant + VirtuaBox 虚拟化的 Ubuntu 16.04
  • Sql Server vNext

客户端:

  • 视窗 7 SP1
  • SSMS 2017(v17.0 build 14.0.17099.0)(不起作用)
  • SSMS 2014(有效!)

感谢您的帮助!

4

1 回答 1

0

似乎仍然无法通过 UI 恢复数据库。但是,部分使用 UI,我采用了这种老式的解决方法:

  • 打开 SSMS 2017 并连接到数据库
  • 打开一个新的查询窗口
  • 在继续之前将您的.bak文件定位到机器中
  • 运行此命令以从您的文件中获取数据库和日志文件.bak的列表 ,在我的环境中是:RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/Northwind.bak'
  • 记下数据库名称、数据库文件名、日志文件名及其逻辑名称,以供下一步使用

  • 运行此命令恢复数据库 RESTORE DATABASE NORTHWND FROM DISK = '/var/opt/mssql/backup/Northwind.bak' WITH MOVE 'Northwind' TO '/var/opt/mssql/data/NORTHWND.mdf', MOVE 'Northwind_Log' TO '/var/opt/mssql/data/NORTHWND_Log.ldf' GO

  • 等等,数据库已成功恢复!

  • 因此,请务必在运行之前使用正确的名称RESTORE DATABASE

我一直在深入寻找正确的解决方案,目前这对我来说已经足够了。

于 2017-04-30T15:50:03.307 回答