Что лучше всего использовать для FTP из хранимой процедуры SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/4246

  •  08-06-2019
  •  | 
  •  

Вопрос

Каков наилучший метод выполнения FTP-команд из хранимой процедуры SQL Server?в настоящее время мы используем что-то вроде этого:

EXEC master..xp_cmdshell 'ftp -n -s:d:\ftp\ftpscript.xmt 172.1.1.1'

Проблема в том, что команда, похоже, выполнена успешно, даже если FTP завершился с ошибкой.Кроме того, использование xp_cmdshell требует специальных разрешений и может создавать проблемы с безопасностью.

Это было полезно?

Решение

Если вы используете SQL 2005, вы могли бы сделать это в сборке интеграции CLR и использовать классы FTP в системе.Пространство имен Net для создания простого FTP-клиента.

Вы выиграли бы от возможности перехватывать и обрабатывать исключения и снизить риск безопасности, связанный с необходимостью использования xp_cmdshell.

Просто несколько мыслей.

Другие советы

Другой возможностью является использование DTS или служб Integration Services (DTS для SQL Server 7 или 2000, SSIS для 2005 или более поздней версии).Оба от Microsoft, включены в установку Sql Server (по крайней мере, в стандартной версии), имеют FTP-задание и предназначены для заданий импорта / экспорта с Sql Server.

Если вам нужно выполнить FTP из базы данных, то я бы выбрал сборку .NET, как предложил Кевин.Это обеспечило бы максимальный контроль над процессом, плюс вы смогли бы записывать значимые сообщения об ошибках в таблицу для составления отчетов.

Другим вариантом было бы написать приложение командной строки, которое считывало бы базу данных для выполнения команд.Затем вы могли бы определить запланированную задачу для вызова этого приложения командной строки каждые минуты или любой другой необходимый период опроса.Это было бы более безопасно, чем включение поддержки CLR на сервере базы данных.

Кев опубликовал пример вон там это реализует его предложение "сделать это в сборке интеграции CLR и использовать классы FTP в System.Пространство имен Net для создания простого FTP-клиента".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top