Доступ запрещен при попытке переместить файлы с помощью xp_cmdshell - PullRequest
2 голосов
/ 19 февраля 2009

Я пытаюсь использовать T-SQL для перемещения некоторых файлов из одного каталога в другой. Я использую xp_cmdshell для вызова команды перемещения Просто так:

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

Но файлы inst перемещаются, и таблица #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 Server сопоставлена ​​с локальным администратором. Если я открою командную строку при вводе команды перемещения

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

Файлы перемещаются идеально

Все это происходит на sql2005, работающем на сервере w2k3.

Я вошел на сервер как локальный администратор

1 Ответ

11 голосов
/ 19 февраля 2009

Можете ли вы запустить

exec master..xp_cmdshell 'set username'

и скажите, что это возвращает?

РЕДАКТИРОВАТЬ: По комментарию ОП, команды выполняются как NETWORK SERVICE. Разрешение NETWORK SERVICE на соответствующий каталог решило проблему.

...