我正在尝试使用此示例项目附带的数据库来自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.).
知道出了什么问题吗?谢谢你的帮助!
答案 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)
在我的情况下,我发现目录查找需要计算机/用户组的读/列权限。虽然服务和运行(在我的情况下)恢复的实际用户具有权限很重要的完全权限。 安全方面,我讨厌它。