Sean Long Asked: 2013-07-31 11:00:25 +0800 CST2013-07-31 11:00:25 +0800 CST 2013-07-31 11:00:25 +0800 CST .bak 文件在 SSMS 的任何目录中都不可见 772 我今天有一个由其他人创建的 .bak 文件,通过 SSMS 2008 R2 手动创建。我正在尝试手动恢复数据库,不幸的是,当我浏览它时该文件没有出现。 我可以编写恢复过程的脚本,但我以前见过这个问题,我不确定是什么导致 .bak 不出现。 sql-server backup 7 个回答 Voted Best Answer AdamsTips 2014-12-13T15:02:14+08:002014-12-13T15:02:14+08:00 我们今天遇到了同样的问题。事实证明这是一个权限问题,如其他一些答案所示。不同的是,我们需要添加的帐户是NT SERVICE\MSSQLSERVER. 我通过将默认 SQL 备份文件夹权限与包含备份文件的文件夹的权限进行比较来识别帐户。 添加服务帐户并不像听起来那么简单。这对我有用。(服务器 2012 R2) 登录到服务器。(必须在实际服务器上进行更改,而不是通过网络共享。) 将位置更改为本地服务器名称。 在NT SERVICE\MSSQLSERVER名称框中输入。(不要单击检查名称) 单击确定。然后,您将看到匹配服务帐户的列表。选择 MSSQLSERVER,然后单击 OK 接受选择。 您应该会看到安全设置中列出的服务帐户,并且可以相应地调整权限。 添加权限后(我添加了完全控制,以匹配默认的 SQL 备份文件夹。)并重新启动 SQL Server 管理控制台,我能够选择并恢复我的备份文件。 user27816 2013-09-05T00:04:50+08:002013-09-05T00:04:50+08:00 我今天得到了这个。 我关闭了文件共享、索引并清除了所有打开的会话(人们登录以复制备份),但问题并没有消失。 转到 Windows 资源管理器,将备份复制到另一个文件夹并通过 Management Studio 浏览到该文件夹,我可以在那里看到它。 删除原始文件夹并重新创建它,再次复制内容并浏览到.bak文件并恢复正常。 希望这可以帮助某人。 Jackofall 2014-10-10T00:17:19+08:002014-10-10T00:17:19+08:00 我遇到过几次这个问题。问题不在于 SQL Server,而在于文件夹的 Windows 权限。您必须向复制 .bak 文件的文件夹添加适当的权限(我认为System Network角色)。 更简单的解决方案是将文件移动到 Program Files 中的默认备份文件夹。它拥有所有必要的许可。对于 SQL Server 2012,它是 D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup Scorpion 2014-05-28T05:41:30+08:002014-05-28T05:41:30+08:00 我今天也遇到了同样的问题。我得到了一个要恢复的备份文件,但在浏览时我看不到它。但是,我能够访问文件系统,但在还原向导中使用SQL Server management Studio. 花了一些后,我发现这是权限问题。SQL Server 服务正在运行,Network Service但Network Service帐户没有访问该文件夹的权限。授予权限后Network Service。备份文件可见以恢复。 详情请通过博客查看。 Aaron Bertrand 2013-07-31T11:08:08+08:002013-07-31T11:08:08+08:00 如果您可以在 Windows 资源管理器中找到它,那么您应该编写一个RESTORE DATABASE命令,而不是依靠笨重的 GUI 来为您找到它。谁知道那里正在发生什么代码以及为什么它可能无法找到该文件 - 抱歉,我只有一个解决方法而不是解决方案。 还要确保该文件实际上是 something.bak 而不是 something.bak.txt (Windows 可能“有用地”向您隐藏扩展名。我讨厌这种默认行为。) Head of Catering 2018-10-24T19:57:54+08:002018-10-24T19:57:54+08:00 今天在我的开发盒上发生了这种情况。在我的情况下,服务帐户有权访问该文件夹,但我的用户帐户没有。一旦我授予我的帐户对该文件夹的权限,我就可以看到 .BAK 文件。 tinker 2021-10-05T21:05:51+08:002021-10-05T21:05:51+08:00 就我而言,我不小心连接到了错误的服务器,显然我在那里找不到备份文件.... 错误的服务器主机名仅相差一个字母,这是必然会发生的错误。最好使用“。”连接。或“localhost”而不是完整的服务器主机名,如果您已经通过服务器上的 RDP 登录。 事后看来,尝试使用命令行而不是 SSMS GUI。这会给你一个明确的错误“找不到文件”。这排除了权限问题。 USE [master]; GO BACKUP DATABASE [AdventureWorks2019] TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2K17\MSSQL\Backup\AdventureWorks2019.bak' WITH COMPRESSION; GO 希望这可以帮助!
我们今天遇到了同样的问题。事实证明这是一个权限问题,如其他一些答案所示。不同的是,我们需要添加的帐户是
NT SERVICE\MSSQLSERVER
.我通过将默认 SQL 备份文件夹权限与包含备份文件的文件夹的权限进行比较来识别帐户。
添加服务帐户并不像听起来那么简单。这对我有用。(服务器 2012 R2)
NT SERVICE\MSSQLSERVER
名称框中输入。(不要单击检查名称)您应该会看到安全设置中列出的服务帐户,并且可以相应地调整权限。
添加权限后(我添加了完全控制,以匹配默认的 SQL 备份文件夹。)并重新启动 SQL Server 管理控制台,我能够选择并恢复我的备份文件。
我今天得到了这个。
我关闭了文件共享、索引并清除了所有打开的会话(人们登录以复制备份),但问题并没有消失。
转到 Windows 资源管理器,将备份复制到另一个文件夹并通过 Management Studio 浏览到该文件夹,我可以在那里看到它。
删除原始文件夹并重新创建它,再次复制内容并浏览到
.bak
文件并恢复正常。希望这可以帮助某人。
我遇到过几次这个问题。问题不在于 SQL Server,而在于文件夹的 Windows 权限。您必须向复制 .bak 文件的文件夹添加适当的权限(我认为
System Network
角色)。更简单的解决方案是将文件移动到 Program Files 中的默认备份文件夹。它拥有所有必要的许可。对于 SQL Server 2012,它是
我今天也遇到了同样的问题。我得到了一个要恢复的备份文件,但在浏览时我看不到它。但是,我能够访问文件系统,但在还原向导中使用
SQL Server management Studio
.花了一些后,我发现这是权限问题。SQL Server 服务正在运行,
Network Service
但Network Service
帐户没有访问该文件夹的权限。授予权限后Network Service
。备份文件可见以恢复。详情请通过博客查看。
如果您可以在 Windows 资源管理器中找到它,那么您应该编写一个
RESTORE DATABASE
命令,而不是依靠笨重的 GUI 来为您找到它。谁知道那里正在发生什么代码以及为什么它可能无法找到该文件 - 抱歉,我只有一个解决方法而不是解决方案。还要确保该文件实际上是 something.bak 而不是 something.bak.txt (Windows 可能“有用地”向您隐藏扩展名。我讨厌这种默认行为。)
今天在我的开发盒上发生了这种情况。在我的情况下,服务帐户有权访问该文件夹,但我的用户帐户没有。一旦我授予我的帐户对该文件夹的权限,我就可以看到 .BAK 文件。
就我而言,我不小心连接到了错误的服务器,显然我在那里找不到备份文件....
错误的服务器主机名仅相差一个字母,这是必然会发生的错误。最好使用“。”连接。或“localhost”而不是完整的服务器主机名,如果您已经通过服务器上的 RDP 登录。
事后看来,尝试使用命令行而不是 SSMS GUI。这会给你一个明确的错误“找不到文件”。这排除了权限问题。
希望这可以帮助!