2009-02-19 66 views
1

我试图使用某些T-SQL将某些文件从一个目录移动到另一个目录。 即时通讯使用xp_cmdshell的调用移动命令 就像这样:尝试使用xp_cmdshell移动文件时访问被拒绝

create table #output(line varchar(2000) null) 
insert into #output exec master..xp_cmdshell 'move /y "D:\files\*.txt" "D:\oldfiles"' 

但这些文件移动研究院和#output表包含来自移动命令

Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
     0 file(s) moved. 
NULL 

SQL服务器代理账号,该输出映射到本地管理员 如果我打开命令提示符输入移动命令

move /y "D:\files\*.txt" "D:\oldfiles" 

文件移动完美

它的一切都发生在运行在w2k3服务器上的sql2005上。

林登录到服务器的本地管理员

回答

9

可以运行

exec master..xp_cmdshell 'set username' 

,并告诉这是什么回报?

编辑:通过OP的评论,命令运行为NETWORK SERVICE。在目录中允许NETWORK SERVICE解决了这个问题。

+1

然后,解决此问题的一种方法(无需重新配置SQL Server服务帐户)只需在目录上允许NETWORK SERVICE即可。 - Tomalak – CruelIO 2009-02-19 12:35:14

相关问题