CREATEFILE 遇到操作系统错误5(未能检索此错误的文本。原因: 15105)

我有一个来自 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

你知道怎么解决吗?

162586 次浏览

我能够解决的问题,运行微软 SQL 管理工作室作为管理员。

我也有同样的问题。经过几次尝试之后,我意识到将 sql 服务器与 Windows 身份验证连接可以解决这个问题。

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

当我以管理员的身份登录时,我曾经做过这样的工作。

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

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

如果您已经作为管理员运行,请确保正在使用的用户具有适当的服务器角色。

  1. 以 sa 登录(如果可以的话)
  2. 展开“安全”文件夹
  3. 展开“登录”文件夹
  4. 右键单击要使用的用户
  5. 选择属性
  6. 选择服务器角色
  7. 选择所有服务器角色
  8. 单击 OK
  9. 重启 SSMS
  10. 使用修改后的用户登录

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

但是,只有当 windows 用户实际上是 sql 服务器运行的计算机上的管理员时,才需要这样做。

例如,当从远程计算机使用 SSMS 时,如果用户只是运行 SSMS 的计算机上的管理员,而不是运行 SQLServer 的计算机上的管理员,那么使用“运行为管理员”将无济于事。

1. 从 —— . MDF,—— . LDF 文件Pate这个位置 2008服务器 C: 程序文件 Microsoft SQL Server 为 MSSQL10.MSSQLSERVER MSSQL 数据 Sql server 2008使用 附件并选择相同的位置进行添加

我也犯了类似的错误。

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'

我在 Windows2003和 SQL2005上遇到过这个问题。我必须将这些文件作为我的 Windows 用户帐户,并以这种方式连接数据库。

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

我用 Windows 身份验证登录到 SSMS,并且能够附加数据库而没有错误。

干杯!

没必要这么做。只需右键单击数据库文件并向每个人添加权限。这肯定有用。

在我的例子中,在尝试在新驱动器上创建数据库时出错。 为了解决这个问题,我在这个驱动器中创建了一个新的文件夹,并将用户属性 Security 设置为完全控制(可能只需要设置 Amendment)。 结论: 将用户的驱动器/文件夹属性安全性设置为“修改”。

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

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

属性 > 安全性 > 高级 > 所有者 > (domain/local user/group SQL services are running as)

这解决了我的问题。

复制你的 --.MDF--.LDF文件,为2008服务器 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 2标记这个位置。

在 sqlserver2008中,使用 ATTACH 并选择相同的位置进行添加

将 SSMS 作为管理员打开并作为 SQLAuth 与 WindowsAuth 运行不起作用。

只需将文件名更改为 LDF 和 MDF 文件所在的相同位置即可。

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

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

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

以下是步骤:

  1. 右键单击. mdf 和. ldf 文件。
  2. 然后选择属性。
  3. 在 security-> Advanced-> 权限上添加用户

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

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

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

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

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

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

错误 _ 访问 _ 拒绝 5(0x5) 拒绝访问。

当分离数据库的 windows 用户和附加数据库的 windows 用户不同时,我们面临这个问题。当窗口用户分离数据库时,尝试附加它,它工作得很好,没有问题。

I just decided to create the file in D: instead of C: and everything worked well. windows 7...10 have many issues regarding the sharing and authorization of files and folder..

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

我的情况是这样的。 我被要求附加一个数据库的文件

  • 和 devdb.ldf

我继续附加文件,并不断得到的文件正在使用的另一个进程。

我对 sys.master _ files 的系统视图 select name,Physical _ name 运行了一个查询,发现确切的文件名已经被另一个数据库使用,因此每次我尝试附加文件时,都会得到另一个进程(sql server)正在使用的文件的错误

因此,如果您收到这样的消息,那么也可以查询系统视图 sys.master _ files,并查看哪个数据库可能已经在使用相同的名称文件。 以后你会知道该怎么做。

谢谢。

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

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

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

重启服务。

Services

我也面临同样的问题,但是我以管理员身份运行 Sql 服务器,所以现在我解决了这个错误。