Quelle est la meilleure pratique pour FTP à partir d'une procédure stockée SQL Server 2005 ?

Quelle est la meilleure méthode pour exécuter des commandes FTP à partir d'une procédure stockée SQL Server ? nous utilisons actuellement quelque chose comme ceci :

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

Le problème est que la commande semble réussir même si le FTP s'est terminé par une erreur. De plus, l'utilisation de xp_cmdshell nécessite des autorisations spéciales et peut laisser place à des problèmes de sécurité.

请先 登录 后评论

3 réponses

Kev

Si vous exécutez SQL 2005, vous pouvez le faire dans un assembly d'intégration CLR et utiliser les classes FTP dans l'espace de noms System.Net pour créer un client FTP simple.

Vous gagneriez à pouvoir intercepter et gérer les exceptions et réduire le risque de sécurité lié à l'utilisation de xp_cmdshell.

Juste quelques réflexions.

请先 登录 后评论
Chris Miller

Si vous avez besoin de faire du FTP à partir de la base de données, j'opterais pour un assemblage .NET comme Kevin l'a suggéré. Cela fournirait le plus de contrôle sur le processus, et vous seriez en mesure de consigner des messages d'erreur significatifs dans une table pour les rapports.

Une autre option serait d'écrire une application en ligne de commande qui lit la base de données pour que les commandes s'exécutent. Vous pouvez ensuite définir une tâche planifiée pour appeler cette application de ligne de commande toutes les minutes ou quelle que soit la période d'interrogation nécessaire. Ce serait plus sûr que d'activer la prise en charge du CLR dans le serveur de base de données.

请先 登录 后评论
BTB

Une autre possibilité consiste à utiliser DTS ou Integration Services (DTS pour SQL Server 7 ou 2000, SSIS pour 2005 ou supérieur). Les deux sont de Microsoft, inclus dans l'installation de Sql Server (au moins dans l'édition Standard) et ont une tâche FTP et sont conçus pour les travaux d'importation/exportation à partir de Sql Server.

请先 登录 后评论