创build文件遇到操作系统错误5(无法检索此错误的文本。原因:15105)

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

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

我想附加到MS 2008 R2 (MSSQL10_50.MSSQLSERVER),但使用服务器pipe理工​​作室我收到以下错误:

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

你有什么想法如何解决它?

我能够解决运行MS SQL Management Studio作为pipe理员的问题。

这是Windows权限问题。 如果您使用Windows身份validation连接到您的服务器,则该Windows用户需要该文件的权限。 如果使用SQL Server身份validation连接到服务器,则SQL Server实例帐户(MSSQL $,例如MSSQL $ SQLEXPRESS)需要对该文件的权限。 build议以pipe理员身份login的其他解决scheme基本上完成相同的事情(用一点大锤:)。

如果数据库文件位于SQL Server的数据文件夹中,则应该从该文件夹inheritanceSQL Server帐户的用户权限,以便SQL Server身份validation能够正常工作。 我会build议修复该文件夹的SQL Server实例的帐户的权利。 如果数据文件在其他地方,并且SQL Server帐户没有权限,那么稍后可能会遇到其他问题。 同样,更好的解决scheme是修复SS帐户权限。 除非你总是以pipe理员身份login…

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

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

我有同样的问题。 经过几次尝试,我意识到连接与Windows身份validation的SQL Server解决了这个问题。

如其他build议以pipe理员身份运行将有所帮助

但是,只有在Windows用户实际上是运行sql server的机器上的admisnitrator。

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

我得到了类似的错误。

 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' 

我在Windows 2003上使用SQL 2005时遇到了这个问题。我不得不将这些文件的所有权作为我的Windows用户帐户,并且我得到了数据库以这种方式进行连接。

您必须右键单击文件,select属性,单击确定以超出信息屏幕,单击高级button,从可用的帐户或组列表中select您的帐户,应用更改,然后单击属性屏幕上的确定。 一旦你完成了所有你将能够pipe理文件的权限。

我使用Windows身份validationlogin到SSMS,并能够无误地连接数据库。

干杯!

当文件的所有者已被删除时,也会发生同样的问题。 发生这种情况时,如果转到文件的属性,您将看到SID而不是用户名。 取得文件的所有权(给自己完全控制)。 一旦完成,你可以做任何你需要做的文件。

由于pipe理员没有做到这一点,因此login时我已经完成了这项工作。

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

  1. 以sa身份login(如果可以的话)
  2. 展开安全性文件夹
  3. 展开login文件夹
  4. 右键点击你想使用的用户
  5. select属性
  6. select服务器angular色
  7. select所有服务器angular色
  8. 点击OK
  9. 重新启动SSMS
  10. 用修改的用户login

1. 复制你的– 。MDF, – 。LDF文件来指定此位置对于2008服务器C:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA 2.在SQL Server 2008中使用ATTACH并select相同的位置添加

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

我的解决scheme稍微复杂一些。 validation用户服务正在运行,运行MSSMS作为本地和域pipe理员,并检查文件夹的权限,我仍然得到这个错误。 我的解决scheme

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

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

这为我解决了这个问题。

以pipe理员身份打开SSMS并以SQL身份validation与Windows身份validation运行不起作用。

什么工作只是改变我的文件名到LDF和MDF文件所在的位置。

 alter database MyDB add file ( name = N'FileStreamName', filename = N'D:\SQL Databases\FileStreamSpace' ) to filegroup DocumentFiles; 

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

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

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

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

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

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

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

我们面临这个问题,当windowsuser分离数据库和windowsuser附加数据库是不同的。 当windowsuser分离数据库,试图附加它,它没有问题的工作正常。

这里是步骤:

  1. 右键单击.mdf和.ldf文件。
  2. 然后select属性。
  3. 在安全 – >高级 – >权限添加用户哪个

复制你的--.MDF--.LDF文件来指定此位置为2008服务器C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2

在SQL Server 2008中使用ATTACH并select相同的位置进行添加

不需要做这一切。 只需右键单击数据库文件并将权限添加到每个人。 这将工作肯定。