我在SQL Server 2005服务器上创建了一个维护计划.应将备份写入另一台服务器.我正在使用UNC路径.运行SQL代理作业的用户具有对其他服务器的完全访问权限.它是两台服务器上的管理员.
问题是此语句失败(具有正确的服务器名称):
EXECUTE master.dbo.xp_create_subdir N'\\ servername\c $\SqlServerBackup\Test'
我得到的错误是:消息22048,级别16,状态1,行0 xp_create_subdir()返回错误123,'文件名,目录名或卷标语法不正确.'
有谁知道可能是什么问题?
在我自己遇到这个问题之后,由于上述解决方案都不够清楚,我想我会发布更清晰的回复.该错误实际上与语法无关 - 它完全与权限有关.这里重要的是,它是SQL Server服务帐户,而不是SQL Server代理帐户,它尝试登录以创建目录.您可以在目标服务器上检查事件查看器并查看安全日志,以查看其他计算机上SQL Server帐户的登录失败(我的本地管理员正在运行).
要解决此问题,请将SQL Server服务帐户设置为允许写入远程共享的域用户.我原以为SQL Server Agent能够使用自己的凭据来执行这些备份操作,但显然不是!