我今天有一个其他人创建的.bak文件,是通过SSMS 2008 R2手动创建的。我正在尝试手动还原数据库,不幸的是,当我浏览该文件时该文件没有出现。

我可以编写还原过程的脚本,但是我之前已经看到过这个问题,我我不确定是什么原因导致无法显示.bak。

评论

我将为还原编写一个脚本,我只想知道是什么原因造成的。绝对是.bak,而不是.bak.txt或其他任何内容。

因此,您能够浏览知道文件所在的文件夹,而该文件夹没有出现吗?还是无法浏览到该文件夹​​?

我可以浏览到该文件夹​​,只是看不到任何.bak文件。我已经检查了与我一起运行SSMS的用户的权限,他们是本地管理员,并且该文件未标记为“隐藏”或任何其他内容。

您可以在某处张贴屏幕快照,以显示Windows资源管理器的文件夹视图和SSMS的视图吗?还要在问题中解释您要用于此步骤的过程。

(还请注意,SQL Server服务帐户也必须具有权限,而不仅仅是SSMS用户。尽管这样做不应该阻止.bak文件在对它们进行任何操作之前显示在列表中。)

#1 楼

今天我们遇到了同样的问题。事实证明,这是一个权限问题,如其他一些答案所示。区别在于,我们需要添加的帐户是NT SERVICE\MSSQLSERVER。我通过将默认SQL Backup文件夹权限的权限与包含以下内容的文件夹进行比较,来确定该帐户:NT SERVICE\MSSQLSERVER



备份文件。

添加服务帐户并不像听起来那样简单。这对我有用。 (Server 2012 R2)


登录到服务器。 (必须在实际服务器上进行更改,而不是通过网络共享进行更改。)
将“位置”更改为本地服务器名称。
在名称框中键入q4312079q。 (不要单击“检查名称”)。
单击“确定”。然后,您将看到匹配的服务帐户的列表。选择“ MSSQLSERVER”,然后单击“确定”接受选择。





您应该看到安全设置中列出的服务帐户,并且可以相应地调整权限。

添加权限后(我添加了“完全控制”,以匹配默认的SQL Backup文件夹。)并重新启动SQL Server管理控制台,便能够选择并还原我的备份文件。

评论


superuser.com/questions/248315/…告诉我们如何在计算机上列出用户帐户。对于任何名为s的服务,都有一个名为NT Service \ s的虚拟帐户,即使该服务未在该帐户下运行。

–塔希尔·哈桑(Tahir Hassan)
16-3-14在15:25

我必须添加的帐户是NT Service \ MSSQL $ SQLSERVER2014,可能是因为我将实例命名为SQLSERVER2014

– thinkOfaNumber
19年5月10日在2:04



我通过添加Computername \ Users的权限来解决它

–奥拉·埃尔多(OlaEldøy)
20-09-28在9:58

#2 楼

我今天知道了。

我关闭了文件共享,建立索引并清除了所有打开的会话(登录并复制备份的人),但是问题并没有消失。

去了到Windows资源管理器,将备份复制到另一个文件夹,然后通过Management Studio浏览到该文件夹​​。我可以在其中看到它。

删除原始文件夹并重新创建,然后再次复制内容并浏览到.bak文件,它又恢复了正常。

希望对别人有帮助。

评论


确实有帮助! :)

– Peter PitLock
2014-03-10 8:02

#3 楼

我几次遇到这个问题。问题不在于SQL Server,而在于文件夹的Windows许可。您必须向复制.bak文件的文件夹中添加适当的权限(我认为是System Network角色)。

较简单的解决方案是将文件移动到Program Files中的默认备份文件夹。它具有所有必要的许可。对于SQL Server 2012,它是

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup


评论


这是一个很好的解决方案,因为它并没有为了恢复一个文件而在计算机中打开潜在的安全漏洞。

–结识新用户
18-10-24在22:25

很好,不需要政策和东西

–马林
19年7月12日在15:04

这是一个适当的答案。表现出色,尤其是在Windows10上

– Bluesight
20 Mar 18 '20在8:13

#4 楼

今天我也遇到了同样的问题。我获得了要还原的备份文件,但浏览时对我不可见。但是我能够使用SQL Server management Studio在还原向导中访问文件系统中的文件。

花了一些钱后,我发现这是权限问题。 SQL Server服务正在使用Network Service运行,但是Network Service帐户没有访问该文件夹的权限。将权限授予Network Service之后。可见备份文件可以还原。

有关详细信息,请通过Blog查看。

#5 楼

如果可以在Windows资源管理器中找到它,则应编写RESTORE DATABASE命令,而不要依赖笨拙的GUI为您查找它。谁知道那里正在执行什么代码,以及为什么它可能找不到文件-抱歉,我只有一种解决方法,而不是解决方案。

还要确保文件实际上是某物。而不是something.bak.txt(Windows可能“有帮助”地向您隐藏了扩展名。我讨厌这种默认行为。)

#6 楼

今天这发生在我的开发人员身上。就我而言,该服务帐户具有该文件夹的权限,但我的用户帐户没有该文件夹的权限。授予我的帐户对该文件夹的权限后,便可以看到.BAK文件。