SQL Server 错误 5120 - 无法附加 .mdf 文件

Posted

技术标签:

【中文标题】SQL Server 错误 5120 - 无法附加 .mdf 文件【英文标题】:SQL Server Error 5120 - failed to attach .mdf file 【发布时间】:2015-12-25 05:09:00 【问题描述】:

在我的 SQL Server 数据库上附加我的 .mdf 文件时,我收到以下错误消息:

消息 5120,第 16 级,状态 101,第 1 行 无法打开物理文件 "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' 操作系统错误 5:“5(拒绝访问。)”。

我没有关联数据库的 .ldf 文件。如何在没有 .ldf 文件的情况下附加我的 .mdf 文件?我正在使用 SQL Server 2014。

【问题讨论】:

请查看dbamohsin.wordpress.com/2009/06/03/… 不要将错误(或任何其他文本)添加为图像。搜索没有发现他们使问题对其他人无用 应该不需要 .ldf 文件。那不是问题。问题可能是对 .mdf 文件的权限。修复后,单击“附加数据库”即可。 可能重复 - ***.com/questions/2330439/… - 请参阅 JMarsch 对他自己问题的回答。 看起来您正在尝试将其附加为目录,而不是物理文件。文件名在哪里?您是通过 T-SQL 附加它吗?如果是这样,你能指定完整的 T-SQL 命令吗? 【参考方案1】:

转到您存储 MDF 文件的文件夹。您可以对整个文件夹或单独的 MDF/LDF 执行此操作。选择文件/文件夹->右键单击->单击“安全性”。然后“编辑”。如果您没有列出 OWNER RIGHTS,请单击“添加”并搜索它,单击“确定”。

然后将完全控制权授予用户 OWNER RIGHTS。

mdf 文件的权限

【讨论】:

确保也更新日志文件的权限。 “安全”选项卡不适合我,但幸运的是关闭窗口,回到 Windows 文件资源管理器到该路径,然后提示我使用其中一个用户访问控制安全对话框并点击继续。当我进入文件夹后,我又回到 SQL Server 并能够附加数据库文件。【参考方案2】:

该错误告诉您运行 SQL Server 服务的帐户没有 mdf 文件的权限。修复权限,它应该可以很好地附加。

专业提示:文字图片不如实际文字有用。 :)

【讨论】:

我发现我需要“修复权限”的方式并不是人们想象的那样——当您右键单击 .mdf 文件时,文件上实际上没有“安全”选项卡。我不得不在 Windows 文件资源管理器中重新导航到数据库的位置。当我这样做时,系统提示我用户访问控制对话框 - 单击继续 - 它必须已应用权限(尽管仍然没有“安全”选项卡来确认),因为那时我能够附加数据库文件。【参考方案3】:

以管理员身份运行 SQL Server Management Studio 以附加 .MDF 文件。之后,无需再以管理员身份运行 SSMS。

【讨论】:

【参考方案4】:

将您的数据文件放入您授予权限的文件夹中 https://dbamohsin.wordpress.com/2009/06/03/attaching-database-unable-to-open-physical-file-access-is-denied/

【讨论】:

以上是关于SQL Server 错误 5120 - 无法附加 .mdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft SQL Server Management Studio ------- 附加数据库 对于 服务器“xxx"失败(错误码5120)

在SQL Server 2005中附加.mdf文件错误

我使用SQL server 2008附加2005的数据库,但是出现错误!

sql附加数据库错误5120

SQL2008附加SQL2005的数据库出错

SQL2005附加数据库失败