Недавно мы переместили все базы данных с MyServerA
в MyServerB
. Все отлично работает на MyServerA
, но когда я пытаюсь вызвать bcp
команду с помощью xp_cmdshell
, я получаю следующее сообщение об ошибке:SQL Server Не удалось открыть файл данных хоста BCP
Error = [Microsoft][SQL Server Native Client 11.0]Unable to open BCP host data-file
Некоторая информация:
Я уверен, что пользователь I» m, зарегистрированный под
MyServerB
, имеет права, назначенные для местоположения удаленного сервера, на который я пытаюсь отправить сообщение. Я запустил «whoami» в командной строке и успешно добавил их под защитой с полным контролем в удаленной папке (какой из них поделен). Кроме того, я могу отобразить его или получить доступ к нему в порядке.Интересно, когда вы пытаетесь отправить уже существующий файл, то есть из того же места, куда я пытаюсь отправить, в качестве вложения с использованием
sp_send_dbmail
, я получил сообщениеAccess denied
. Так что это проблема безопасности. Но см. № 1 выше.Я также попытался сохранить его в папке на локальном
MyServerB
, но я тоже не могу этого сделать.
Пример кода:
DECLARE @bcp varchar(2000);
SET @bcp = 'bcp "SELECT 1" queryout "\\MyServerA\Reports\MyFile.txt" -c -T -S MyServerB';
EXEC master..xp_cmdshell @bcp;
'bcp' является * не * инструментом экспорта текста. Почему вы не используете SSIS? Сам факт, что вам нужно было повысить привилегии для запуска 'xp_cmdshell', должно быть предупреждением. –
Во всяком случае, зачем запускать 'bcp' изнутри SQL Server? Вы можете запустить его из командной строки или запланировать его периодическое выполнение в запланированных заданиях. Вы также можете запланировать выполнение команды из агента SQL. Запуск 'xp_cmdshell' требует ослабления безопасности. –
Это то, что я унаследовал. В этот момент мне разрешено обновлять SSIS или изменять сценарий или метод. Это работало до того, как есть, и они хотят, чтобы он был исправлен как есть. Спасибо за предложения, хотя. – ptownbro