sp_attach_single_file_db错误:操作系统错误5失败(访问被拒绝。)

时间:2011-07-15 06:16:41

标签: sql sql-server-2008 ssms

我正在尝试使用此示例项目附带的数据库来自MS:

http://code.msdn.microsoft.com/ASPNET-Web-Forms-6c7197aa/sourcecode?fileId=18930&pathId=365206059

所以在我下载文件之后:我需要将.mdf数据库附加到我的MS SQL 2008实例。

从Management Studio附加数据库不起作用,使用此命令的事件我收到相同的错误:

  

sp_attach_single_file_db'School.mdf','C:\ School.mdf'


ERROR:

Msg 5133, Level 16, State 1, Line 1
Directory lookup for the file "C:\School.mdf" failed with the operating system error 5(Access is denied.).

知道出了什么问题吗?谢谢你的帮助!

6 个答案:

答案 0 :(得分:14)

授予您要在其中创建mdf文件的文件夹的完全权限 到运行SQL Server服务的登录帐户。 通常:NT Service \ MSSQL $

你可以看一下 控制面板 - >管理工具 - >服务=> SQL Server - > Prperties->登录标签 - >注意帐户

答案 1 :(得分:10)

您在运行什么操作系统?将文件保存到C驱动器的根目录时是否收到提升提示? SQL Server在哪个用户帐户下运行,是否有权读取C盘根目录中的任何文件?

您可以更好地将文件放入%ProgramFiles%\Microsoft SQL Server\MSSQL10.<instance name>\MSSQL\DATA,以及您知道已经读取的其他.mdf文件(根据需要调整上面的路径,但您希望得到这个想法)。

答案 2 :(得分:3)

我有这个问题,所有在线解决方案都有误导性。

解决方案是以管理员身份打开SSMS。在我看来,首先尝试这个,然后尝试所有其他解决方案。

答案 3 :(得分:0)

将其移至DATA文件夹基本上解决了权限问题。另一种解决方案是更改文件(或文件)的权限,因此仍然在不同的文件夹中具有DB。我刚遇到类似的权限错误“CREATE FILE遇到操作系统错误5(访问被拒绝。)”试图在Windows 7上的SQL Server 2012 Express中附加数据库。

我做的解决方案如下: 1)点击每个MDF,LDF和NDF文件以获取菜单 - &gt;选择属性 2)为计算机添加用户并给予他们完全控制(而不是每个人 - 到危险)

之后我可以附上数据库。

但是,即使没有移动到DATA文件夹,也应该移动到子文件夹而不是C:\ root(例如:C:\ mydb)。

答案 4 :(得分:0)

创建DATABASE newDataBaseName

on(FILENAME =&#39; C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ filename.mdf&#39;),

(FILENAME =&#39; C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA \ filename_log.ldf&#39;)

FOR ATTACH_REBUILD_LOG;

GO

同样如上面提到的Damien将mdf文件放在其他mdf文件所在的位置。对我来说C:\ Program Files(x86)\ Microsoft SQL Server \ MSSQL12.SQLEXPRESS \ MSSQL \ DATA

答案 5 :(得分:0)

在我的情况下,我发现目录查找需要计算机/用户组的读/列权限。虽然服务和运行(在我的情况下)恢复的实际用户具有权限很重要的完全权限。 安全方面,我讨厌它。