72

我在文件夹中有一个.mdf来自 MS SQL EXPRESS 的数据库文件:

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA

我想将它附加到MS 2008 R2 (MSSQL10_50.MSSQLSERVER) 但使用 Server Management Studio 我收到以下错误:

CREATE FILE encountered operating system error 5(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

你知道如何解决它吗?

4

25 回答 25

138

我能够解决以管理员身份运行 MS SQL Management Studio 的问题。

于 2012-06-24T15:11:44.307 回答
52

这是 Windows 权限问题。如果您使用 Windows 身份验证连接到服务器,则该 Windows 用户需要对该文件的权限。如果您使用 SQL Server 身份验证连接到您的服务器,则 SQL Server 实例帐户(MSSQL$,例如 MSSQL$SQLEXPRESS)需要对该文件的权限。建议以管理员身份登录的其他解决方案基本上完成了同样的事情(有点大锤:)。

如果数据库文件位于 SQL Server 的数据文件夹中,那么它应该已经从该文件夹继承了 SQL Server 帐户的用户权限,因此 SQL Server 身份验证应该有效。我建议修复该文件夹的 SQL Server 实例帐户权限。如果数据文件在其他地方并且 SQL Server 帐户没有权限,那么您以后可能会遇到其他问题。同样,更好的解决方案是修复 SS 帐户权限。除非您总是以管理员身份登录...

于 2013-01-31T16:56:34.087 回答
5

右键单击文件 mdf 和 ldf 属性 -> 安全 -> 完全权限

于 2015-01-20T18:51:08.380 回答
4

授予管理员权限或完全控制我的数据库安装位置解决了我的问题

于 2015-07-08T15:03:43.193 回答
3

我有同样的问题。经过几次尝试,我意识到将 sql server 与 windows 身份验证连接解决了这个问题。

于 2012-11-22T16:27:59.227 回答
3

开始->运行-> services.msc->滚动服务列表,直到找到SQL Server->右键单击->属性->登录选项卡:

然后选择Local System Account并选中Allow service to interact with desktop复选框。

重新启动服务。

服务

于 2019-02-27T14:12:52.687 回答
2

我遇到了类似的错误。

CREATE FILE encountered operating system error **32**(failed to retrieve text for this error. Reason: 15105) while attempting to open or create the physical file

我使用以下命令附加数据库:

EXEC sp_attach_single_file_db @dbname = 'SPDB',
@physname = 'D:\SPDB.mdf'
于 2013-06-01T20:30:18.477 回答
1

正如其他建议以管理员身份运行将有所帮助。

但是,这仅当 windows 用户实际上是运行 sql server 的机器上的管理员时。

例如,当从远程计算机使用 SSMS 时,如果用户只是运行 SSMS 的计算机上的管理员而不是运行 SQL Server 的计算机上的管理员,则使用“以管理员身份运行”将无济于事。

于 2013-05-09T19:39:47.627 回答
1

当文件的所有者被删除时,也会出现同样的问题。发生这种情况时,如果您转到文件的属性,您将看到一个 SID 而不是用户名。取得文件的所有权(给自己完全控制权)。完成后,您可以对文件执行任何操作。

登录时我已经完成了这项工作,因为管理员没有做到这一点。

于 2012-11-30T15:00:02.423 回答
1

我在带有 SQL 2005 的 Windows 2003 上遇到了这个问题。我必须将文件的所有权作为我的 Windows 用户帐户,并且我让数据库以这种方式附加。

您必须右键单击该文件,选择属性,单击确定以通过信息屏幕,单击高级按钮,从可用帐户或组列表中选择您的帐户,应用该更改,然后单击属性屏幕上的确定。完成所有操作后,您将能够管理文件权限。

我使用 Windows 身份验证登录 SSMS,并且能够正确附加数据库。

干杯!

于 2014-01-04T13:19:49.657 回答
1

1.复制你的--.MDF,--.LDF 文件到这个位置 对于 2008 服务器 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2.在 sql server 2008 中使用ATTACH并选择相同的位置添加

于 2013-05-23T12:49:19.090 回答
0

以管理员身份打开 SSMS 并以 SQL Auth vs Windows Auth 身份运行不起作用。

有效的方法是将我的文件名更改为 LDF 和 MDF 文件所在的相同位置。

alter database MyDB
add file ( name = N'FileStreamName', 
filename = N'D:\SQL Databases\FileStreamSpace' ) 
to filegroup DocumentFiles;
于 2014-12-09T09:54:37.150 回答
0

将您的文件复制--.MDF到此--.LDF位置 对于 2008 服务器C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2

在 sql server 2008 中使用 ATTACH 并选择相同的位置进行添加

于 2014-08-21T07:53:09.220 回答
0

我的解决方案稍微复杂一些。在验证服务运行的用户、以本地和域管理员身份运行 MSSMS 并检查文件夹权限后,我仍然收到此错误。我的解决方案?

文件夹所有权仍由本地帐户维护。

属性 > 安全 > 高级 > 所有者 >(域/本地用户/组 SQL 服务正在运行)

这为我解决了这个问题。

于 2014-07-15T19:22:54.630 回答
0

就我而言,尝试在新驱动器上创建数据库时出现错误。为了克服这个问题,我在该驱动器中创建了一个新文件夹并将用户属性 Security 设置为完全控制它(设置 Modify 可能就足够了)。结论:为用户设置驱动器/文件夹属性安全性以“修改”。

于 2014-05-13T04:45:46.670 回答
0

如果您已经以管理员身份运行,请确保您使用的用户具有正确的服务器角色。

  1. 以 sa 身份登录(如果可以)
  2. 展开安全文件夹
  3. 展开登录文件夹
  4. 右键单击您要使用的用户
  5. 选择属性
  6. 选择服务器角色
  7. 选择所有服务器角色
  8. 点击确定
  9. 重启 SSMS
  10. 使用修改后的用户登录
于 2013-04-24T15:14:33.357 回答
0

以下是步骤:

  1. 右键单击 .mdf 和 .ldf 文件。
  2. 然后选择属性。
  3. 在安全 -> 高级 -> 权限上添加用户
于 2015-08-25T06:22:49.107 回答
0

这是我的情况。我被要求为数据库附加文件。我得到的文件名如下

  • devdb.mdf 和 devdb.ldf

我继续附加文件并不断获取文件正在被另一个进程使用。

我对系统视图 select name,physical_name from sys.master_files 进行了查询;并看到确切的文件名已被另一个数据库使用,因此每次我尝试附加文件时,我一直收到错误文件正在被另一个进程(sql server)使用

因此,如果您收到这样的消息,那么还要查询系统视图 sys.master_files 并查看哪个数据库可能已经在使用同名文件。此后,您将弄清楚该怎么做。

谢谢。

于 2018-12-11T21:33:32.770 回答
0

还原在另一台服务器上备份的数据库时出现此错误。经过长时间的斗争,这就是我所做的

  1. 启用即时文件初始化,

  2. 授予服务帐户和我自己的 Windows 帐户的文件夹权限(完全控制),

  3. 重新启动 SQL 服务。之后数据库恢复。

于 2015-12-01T15:07:22.910 回答
0

我刚刚决定在 D: 而不是 C: 中创建文件,并且一切正常。windows 7...10 在文件和文件夹的共享和授权方面有很多问题..

于 2018-03-17T11:10:06.957 回答
0

如果您有挂载点,请将 SQL Server 服务帐户相应地添加到卷安全性

于 2019-02-20T09:58:03.737 回答
0

我们遇到了这个问题,当分离数据库的 windowsuser 和附加数据库的 windowsuser 不同时。当 windowsuser 分离数据库,尝试附加它时,它工作正常,没有问题。

于 2017-05-12T21:10:44.130 回答
0

就我而言,以管理员身份运行没有帮助。我通过在配置管理器中将内置帐户更改为本地系统解决了这个问题。

于 2018-11-03T09:20:25.883 回答
0

关键是“操作系统错误5”。微软在他们的网站上列出了各种错误代码和值

https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

ERROR_ACCESS_DENIED 5 (0x5) 访问被拒绝。

于 2016-01-20T21:27:29.433 回答
-2

没有必要做这一切。只需右键单击数据库文件并为每个人添加权限。这肯定会奏效。

于 2014-03-13T18:49:25.310 回答