将 SQL Server 数据库备份到网络可写位置失败

Back-up of SQL Server Database to network writable location fails

提问人:Marked 提问时间:9/7/2023 更新时间:9/7/2023 访问量:30

问:

我想备份SQL Sever数据库。使用 sqlcmd,我能够将输出定向到本地计算机上的共享文件夹。我可以备份到服务器上的某个位置,但无法将备份文件定向到本地计算机上的位置(共享文件夹)。 那是在 sqlcmd 中:

BACKUP DATABASE <dbname> TO DISK 'c:\Temp\dbname.bak';
Go

工程

:out \\path\to\shared\location\msg.out
SELECT 1;

也可以使用选择的输出创建一个文件。

BACKUP DATABASE <dbname> TO DISK = '\\path\to\shared\location\db.bak';

失败,如下所示:

无法打开备份设备“\path\to\shared\location\db.bak”。操作系统错误 53(找不到网络路径)。 消息 3013,级别 16,状态 1,服务器 <xxxx\xxxx>,第 1 行

知道为什么备份失败吗?

sql-server 数据库备份 sqlcmd

评论

1赞 Thom A 9/7/2023
SQL Server 服务帐户是否有权访问共享路径?我还假设 SQL Server 帐户是域帐户?本地服务帐户将无法访问远程路径。
2赞 Stu 9/7/2023
在您的示例中,之所以有效,是因为与目标路径的连接是由本地登录的帐户建立的;SQL Server 备份连接由 SQL Server 服务帐户用户建立。:out
0赞 Marked 9/7/2023
@Stu 共享文件夹设置为允许“所有人”读/写。
0赞 Stu 9/7/2023
@Marked NTFS 权限呢,它们都需要允许 SQL Server 帐户。
1赞 Charlieface 9/7/2023
大多数 AD 设置中的“所有人”仅包含经过身份验证的帐户。本地服务帐户仅对单台计算机有效,它无法在网络上向域控制器进行身份验证。虽然理论上也可以允许 Guest,但这是相当危险的 执行此操作的唯一正确方法是使 SQL Server 使用域帐户(可能是 gMSA),或者将其写入本地驱动器并将其复制到单独的批处理中。

答: 暂无答案