Какова наилучшая практика для FTP из хранимой процедуры SQL Server 2005? - PullRequest
13 голосов
/ 07 августа 2008

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

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

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

Ответы [ 4 ]

4 голосов
/ 07 августа 2008

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

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

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

3 голосов
/ 11 августа 2008

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

2 голосов
/ 07 августа 2008

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

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

1 голос
/ 15 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...