Cru*_*lIO 2 sql t-sql command-line sql-server-2005 windows-server-2003
我试图使用一些T-SQL将一些文件从一个目录移动到另一个目录.我使用xp_cmdshell来调用move命令就像这样:
create table #output(line varchar(2000) null)
insert into #output exec master..xp_cmdshell 'move /y "D:\files\*.txt" "D:\oldfiles"'
Run Code Online (Sandbox Code Playgroud)
但文件inst移动,#output表包含move命令的输出
Access is denied.
Access is denied.
Access is denied.
Access is denied.
Access is denied.
Access is denied.
0 file(s) moved.
NULL
Run Code Online (Sandbox Code Playgroud)
sql server代理帐户映射到本地管理员如果我在输入move命令时打开命令提示符
move /y "D:\files\*.txt" "D:\oldfiles"
Run Code Online (Sandbox Code Playgroud)
文件移动完美
它全部发生在运行在w2k3服务器上的sql2005上.
我以本地管理员身份登录服务器
Tom*_*lak 11
你能跑一个吗?
exec master..xp_cmdshell 'set username'
Run Code Online (Sandbox Code Playgroud)
并告诉它返回什么?
编辑:通过OP的评论,命令运行为NETWORK SERVICE.允许NETWORK SERVICE在相关目录上解决问题.