SQL Server操作系统错误5:“5(访问被拒绝。)”

我开始学习SQL,我有一本书提供了一个数据库的工作。 这些文件在目录中,但问题是,当我运行查询,它给了我这个错误:

Msg 5120,Level 16,State 101,Line 1无法打开物理文件“C:\ Murach \ SQL Server 2008 \ Databases \ AP.mdf”。 操作系统错误5:“5(访问被拒绝)”。

CREATE DATABASE AP ON PRIMARY (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP.mdf') LOG ON (FILENAME = 'C:\Murach\SQL Server 2008\Databases\AP_log.ldf') FOR ATTACH GO 

在这本书中,作者说这应该起作用,但是对我来说这不起作用。 我search,但我不知道到底是什么问题,所以我发布了这个问题。

SQL Server数据库引擎服务帐户必须具有读取/写入新文件夹的权限。

看看这个

要解决,我做了以下几点:

完全控制数据文件(S :)和日志文件(T :),将pipe理员组添加到文件安全权限。

附加数据库,它工作正常。

在这里输入图像说明

在这里输入图像说明

一个旧的post,但这里是一步一步的工作在SQL Server 2014下运行在Windows 7下:

  • 控制面板 – >
  • 系统和安全 – >
  • pipe理工具 – >
  • 服务 – >
  • 双击SQL Server(SQLEXPRESS) – >右键单击属性
  • selectlogin选项卡
  • select“本地系统帐户”(默认是一些钝的Windows系统帐户)
  • – 好的
  • 点击右键,停止
  • 点击右键,开始

Voilá!

我认为在安装中设置login帐户可能是一个选项,但是如果是这样的话,它不是默认的,如果您还没有意识到这个问题,很容易就会漏掉。

这是与Windows相关的问题,SQL Server对包含.bak文件的文件夹没有适当的权限,因此出现此错误。

最简单的解决方法是将您的.bak文件复制到具有所有必要权限的默认SQL备份位置。 你不需要摆弄别的东西。 在SQL SERVER 2012中 ,这个位置是

 D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup (SQL 2012) C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup (SQL 2014) C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Backup (SQL 2016) 

为了解决访问被拒绝的问题,我以pipe理员身份启动了SSMS,并允许我从本地驱动器附加数据库。 数据库是在另一个SQL和Windows实例中创build的。

是的,它是正确的。首先你应该find你的服务帐户的sqlserver,你可以看到它在任务pipe理器,当你同时按ctrl + ALT + DELETE;然后,你必须给予读/写权限“C :\ Murach \ SQL Server 2008 \数据库“到服务帐户。

问题是由于缺乏SQL Server访问mdf&ldf文件的权限。 所有这些程序将起作用:

  1. 您可以直接更改MSSQLSERVER服务启动用户帐户,具有对这些文件具有更好权限的用户帐户。 然后尝试附加数据库。
  2. 或者,您可以将用户分配到mdf&ldf文件属性的安全性选项卡中的文件,并检查读取和写入权限。
  3. 使用Windowspipe理员帐户启动,然后以pipe理员身份运行打开SQL Server并尝试使用Windows身份validationlogin,现在尝试附加数据库。

在这一点上,实际的服务器权限并不重要; 一切看起来不错。 SQL Server本身需要文件夹权限。
根据您的版本,您可以添加SERVERNAME $ MSSQLSERVER权限来触摸您的文件夹。 无论如何,它必须在默认的BACKUP目录(安装它的位置或者默认为c:\ programfiles(x)\ MSSQL \ BACKUP。

萨拉姆。 我通过为Users组添加.mdf.ldf文件的Full control权限来解决此问题。

即使你执行以下步骤,你也可能得到相同的错误信息。

 1. login as SA user (SSMS) 2. Edit the file permissions to say "everyone" full access (windows folder) 3. Delete the Log file (Windows Exploring (this was what I had done per advise from some msdn forum) 

我仍然GOT权限错误,但后来我注意到,在附加屏幕,底部部分STILL显示日志文件,错误消息保持不变。

希望这有助于做同样的事情的人。

对于我来说,它是通过以下方式与SQL Serverpipe理工作室 – 以pipe理员身份login(我login为Windows身份validation) – 附加mdf文件(右键单击数据库|附加|添加) – 注销作为pipe理员login为普通用户

很简单的解决scheme

  1. 用系统pipe理员login
  2. 在“C:\ Program Files文件(x86)\ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ DATA”中复制您的mdf和ldf文件。
  3. 现在从那里附加它会工作

我有这个问题。 只需以pipe理员身份运行sql server

我在我的应用程序中使用entity framework,并有这个问题,我安装了文件夹和Windows服务的任何权限,不工作,之后,我开始我的应用程序作为pipe理员(右键单击exe文件,并select“作为pipe理员运行”),精细。