ما هي أفضل ممارسة لـ 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 في مساحة الاسم System.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