.bak文件在SSMS中的任何目录中都不可见


46

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

我可以编写恢复过程的脚本,但是我以前已经看到过此问题,并且不确定是什么原因导致.bak不出现。


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

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

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

您可以在某个位置发布屏幕快照,以显示Windows资源管理器的文件夹视图和SSMS的视图吗?还要在问题中解释您要用于此步骤的过程。
亚伦·伯特兰

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

Answers:


39

今天我们遇到了同样的问题。事实证明,这是一个权限问题,如其他一些答案所示。区别在于我们需要添加的帐户为NT SERVICE\MSSQLSERVER

屏幕截图

我通过将默认SQL Backup文件夹权限的权限与包含备份文件的文件夹的权限进行比较来标识该帐户。

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

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

在此处输入图片说明

在此处输入图片说明

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

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


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

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

16

我今天有这个

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

转到Windows资源管理器,将备份复制到另一个文件夹,并通过Management Studio浏览到该文件夹​​,我在那里可以看到它。

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

希望这对某人有帮助。


1
确实有帮助!:)
Peter PitLock 2014年

5

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

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

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

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

很好,不需要任何政策和材料
Marin

3

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

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

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


2

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

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


1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.