创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色。
- 以sa身份login(如果可以的话)
- 展开安全性文件夹
- 展开login文件夹
- 右键点击你想使用的用户
- select属性
- select服务器angular色
- select所有服务器angular色
- 点击OK
- 重新启动SSMS
- 用修改的用户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;
恢复在另一台服务器上备份的数据库时出现此错误。 经过漫长的斗争,这就是我所做的
-
启用即时文件初始化,
-
授予权限(完全控制)的文件夹到服务帐户和我自己的Windows帐户,
-
重新启动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分离数据库,试图附加它,它没有问题的工作正常。
这里是步骤:
- 右键单击.mdf和.ldf文件。
- 然后select属性。
- 在安全 – >高级 – >权限添加用户哪个
复制你的--.MDF
, --.LDF
文件来指定此位置为2008服务器C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2
。
在SQL Server 2008中使用ATTACH并select相同的位置进行添加
不需要做这一切。 只需右键单击数据库文件并将权限添加到每个人。 这将工作肯定。