我在MS SQL EXPRESS文件夹中有一个数据库文件.mdf
:
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
你知道如何解决它吗?
答案 0 :(得分:125)
我能够解决运行MS SQL Management Studio作为ADMINISTRATOR的问题。
答案 1 :(得分:46)
这是Windows权限问题。如果使用Windows身份验证连接到服务器,则该Windows用户需要该文件的权限。如果使用SQL Server身份验证连接到服务器,则SQL Server实例帐户(MSSQL $,例如MSSQL $ SQLEXPRESS)需要该文件的权限。建议以管理员身份登录的其他解决方案基本上可以完成同样的事情(使用一些大锤:)。
如果数据库文件位于SQL Server的数据文件夹中,那么它应该从该文件夹继承了SQL Server帐户的用户权限,因此SQL Server身份验证应该有效。我建议修复SQL Server实例的帐户对该文件夹的权限。如果数据文件位于其他位置且SQL Server帐户没有权限,则稍后您可能会遇到其他问题。同样,更好的解决方案是修复SS帐户权限。除非你总是以管理员身份登录......
答案 2 :(得分:5)
右键单击File mdf和ldf properties - >安全性 - >完全权限
答案 3 :(得分:4)
赋予管理员权限或完全控制我的数据库安装位置解决了我的问题
答案 4 :(得分:2)
我遇到了同样的问题。经过几次尝试,我意识到连接sql server与windows身份验证解决了这个问题。
答案 5 :(得分: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'
答案 6 :(得分:1)
正如其他建议以管理员身份运行会有所帮助。
然而,只有当windows用户实际上是sql server运行的机器上的admisnitrator时才会这样。
例如,当从远程计算机使用SSMS时,如果用户只是运行SSMS的计算机上的管理员而不是运行SQL Server的计算机上的管理员,则无法使用“run as administartor”。
答案 7 :(得分:1)
1. 将 - 。MDF, - 。LDF文件复制至标记此位置 对于2008服务器 C:\ Program Files \ Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA 2.在sql server 2008中使用 ATTACH 并选择相同的位置进行添加
答案 8 :(得分:1)
我在使用SQL 2005的Windows 2003上遇到了这个问题。我不得不将这些文件的所有权作为我的Windows用户帐户,并且我让数据库以这种方式附加。
您必须右键单击该文件,选择“属性”,单击“确定”以通过信息屏幕,单击“高级”按钮,从可用帐户或组列表中选择您的帐户,应用该更改,然后单击“确定”。属性屏幕。完成所有操作后,您就可以管理文件权限。
我使用Windows身份验证登录SSMS,我能够无误地附加数据库。
干杯!
答案 9 :(得分:0)
开始->运行-> services.msc
->滚动浏览服务列表,直到找到SQL Server->右键单击->属性->“登录”选项卡:
然后选择Local System Account
并选中Allow service to interact with desktop
复选框。
重新启动服务。
答案 10 :(得分:0)
如果有安装点,则将SQL Server服务帐户相应地添加到卷安全性中
答案 11 :(得分:0)
这是我的情况。 我被要求附加数据库文件。给我的文件名如下
我继续附加文件,并不断使文件被其他进程使用。
我对系统视图选择名称sys.master_files中的physical_name进行了查询;并且看到确切的文件名已经被另一个数据库使用,因此每次我尝试附加文件时,我不断收到错误消息,指出另一个进程(sql server)正在使用文件
因此,如果您收到这样的消息,则还要在系统视图sys.master_files中查询,并查看哪个数据库可能已经在使用相同的名称文件。 此后,您将弄清楚该怎么办。
谢谢。
答案 12 :(得分:0)
就我而言,以管理员身份运行无济于事。我通过在Configuration Manager中将内置帐户更改为本地系统来解决了这个问题。
答案 13 :(得分:0)
我刚决定在D中创建文件:而不是C:并且一切运行良好。 Windows 7 ... 10有关于文件和文件夹的共享和授权的许多问题..
答案 14 :(得分:0)
当windowsuser分离数据库和附加数据库的windowsuser不同时,我们遇到了这个问题。当windowsuser分离数据库时,尝试附加它,它没有问题,工作正常。
答案 15 :(得分:0)
关键是"操作系统错误5"。 Microsoft帮助列出其站点上的各种错误代码和值
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
ERROR_ACCESS_DENIED 5(0x5) 访问被拒绝。
答案 16 :(得分:0)
恢复在另一台服务器上备份的数据库时出现此错误。经过长时间的斗争,这就是我做的事情
启用即时文件初始化,
对服务帐户和我自己的Windows帐户的文件夹授予权限(完全控制权),
重新启动SQL服务。 之后数据库恢复。
答案 17 :(得分:0)
以管理员身份打开SSMS并以SQL身份验证与Windows身份验证身份运行无效。
将我的文件名更改为LDF和MDF文件所在的位置是有效的。
alter database MyDB
add file ( name = N'FileStreamName',
filename = N'D:\SQL Databases\FileStreamSpace' )
to filegroup DocumentFiles;
答案 18 :(得分:0)
复制您的--.MDF
,--.LDF
个文件以获取此位置对于2008服务器C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2
。
在sql server 2008中使用ATTACH并选择相同的位置进行添加
答案 19 :(得分:0)
我的解决方案稍微复杂一些。在验证用户服务正在运行,运行MSSMS作为本地和域管理员,并检查文件夹权限后,我仍然收到此错误。我的解决方案
文件夹所有权仍由本地帐户维护。
属性>安全>高级>所有者> (域/本地用户/组SQL服务正在运行)
这解决了我的问题。
答案 20 :(得分:0)
在我的情况下,我在尝试在新驱动器上创建数据库时遇到错误。 为了解决这个问题,我在该驱动器中创建了一个新文件夹,并将用户属性Security设置为完全控制(设置Modify可能就足够了)。 结论: 将用户的驱动器/文件夹属性安全设置为“修改”。
答案 21 :(得分:0)
如果您已作为管理员运行,请确保您使用的用户具有正确的服务器角色。
答案 22 :(得分:0)
删除文件的所有者时会出现同样的问题。发生这种情况时,如果转到文件的属性,您将看到SID而不是用户名。取得文件的所有权(给自己完全控制)。完成后,您可以执行文件所需的任何操作。
登录时我已经完成了这项工作,因为管理员没有这么做。
答案 23 :(得分:-2)
无需做所有这些。只需右键单击数据库文件并向每个人添加权限。这肯定会奏效。