SQL从.bak恢复数据库到另一台机器 - 错误

时间:2013-09-21 15:40:10

标签: sql sql-server

我正在尝试从托管服务器上的备份中恢复数据库。 我使用以下方法检查了逻辑名称:

restore FILELISTONLY from 
disk = 'c:\DBBackup2_17092013.bak'

并使用它们执行以下查询:

restore database StadlerTest
from disk = 'c:\DBBackup2_17092013.bak'
with replace,
move 'Stadler_base' to 'C:\Program Files\Microsoft SQL
Server\MSSQL10.SQLEXPRESS\MSSQL\StadlerTest.mdf',
move 'Stadler_base_log' to 'C:\Program Files\Microsoft SQL
Server\MSSQL10.SQLEXPRESS\MSSQL\StadlerTest.ldf'

在我创建空数据库StadlerTest后,我从master运行以上两个查询但是我收到一系列错误,听起来像这些(意大利语翻译):

“”消息3634,级别16,状态1,行1 在“C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ StadlerTest.mdf”上尝试“RestoreContainer :: ValidateTargetForCreation”时,操作系统返回错误“5(拒绝访问。)”。“”

我做错了什么但我不知道出了什么问题,我已经检查了SO和其他网站上给出的几个答案,但我没有做对。一些帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

听起来像权限错误。 SQL Server可能没有权限在那里创建文件。请记住,SQL Server正在尝试在其服务帐户下创建数据库,而不是Windows登录。检查SQL Server帐户的权限,与安全性下的所有其他登录一起找到 - >登录管理工作室。

但是,您不应在C驱动器上创建数据库。如果它们增长并且C驱动器用完了空间,那么整个计算机和操作系统都会耗尽。如果可能的话,将数据库文件放在不同的驱动器上。如果这只是个人测试使用,那很好,但不适用于任何重要的系统。