MS SQL 2005--备份到共享目录

MS SQL 2005--备份到共享目录

我在 Hyper-V 下的 2008 服务器上有一台运行 Windows 2003 的 SQL 2005 虚拟机,我需要开始将数据库备份到共享文件夹。我在其他环境中创建了类似的备份作业,没有任何问题。不同之处在于,在其他所有情况下,SQL 服务器都是域的一部分,而在这种情况下没有域名即使我将共享文件夹设置为授予“所有人”“完全控制”权限,SQL 仍然拒绝运行备份作业:

操作系统错误 1326(登录失败:未知用户名或密码错误。)。BACKUP DATABASE 异常终止。”。可能的失败原因:查询存在问题,“ResultSet”属性未正确设置、参数未正确设置或连接未正确建立。

我该怎么办?除了备份到本地驱动器并找到其他方法复制文件之外,没有其他解决方案吗?

编辑:添加粗体以强调

答案1

如果您没有域,您可以在所有机器上设置相同的用户(名称),然后使用本地用户运行SQL Server。

例如,在 ServerA(正在运行 SQL Server)上,我可以将用户 MySQLServerUser 设置为本地用户。使用配置管理器将其设置为运行 SQL Server 的帐户。

然后在我想要发送备份的 ServerB 上,我使用相同的密码设置了相同的帐户(MySQLServerUser)。

由于 Windows 将把它作为第一个用户/密码传递,因此它应该进行身份验证。

请注意,不建议通过网络进行备份。SQL 备份过程无法容忍网络延迟。任何故障都会导致备份失败。磁盘发生故障时,这种情况很可能会发生。在本地备份,复制到远程计算机。副本将自动重试。

答案2

SQL Server 服务帐户必须具有网络共享的访问权限。如果您使用 Localsystem 帐户运行 SQL Server 服务:此帐户无权访问网络上的共享,因为它不是经过身份验证的网络帐户,因此无法备份到正常的网络共享。

因此,如果您想备份到网络共享,您可以做两件不同的事情:

将运行 SQL Server 服务的帐户更改为可以访问网络共享并具有所需权限的域帐户 (DOMAIN\USERNAME)。

或者(不推荐在生产环境中使用):

在具有网络共享的服务器上添加以下注册表值,并添加要备份到的共享名 - 然后共享不会验证谁进入,因此 Localsystem 帐户将具有访问权限。必须重新启动服务器,更改才能生效。请注意,这实际上删除该共享上的所有安全性,因此任何人都可以访问。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\NullSessionShares

答案3

确保你正在运行 SQL服务器在具有网络访问权限的域帐户环境下提供服务。

或者这是 SQL Server 框中的本地文件夹并与其他人共享?

**编辑:**bah,@splattne 说得对,我是自动驾驶。SQL Server 服务,不是 SQL 代理。

相关内容