एसक्यूएल सर्वर 2005 संग्रहीत प्रक्रिया से एफ़टीपी के लिए सबसे अच्छा अभ्यास क्या है?

एसक्यूएल सर्वर संग्रहीत प्रक्रिया से एफ़टीपी कमांड निष्पादित करने के लिए सबसे अच्छी विधि क्या है? हम वर्तमान में इस तरह कुछ उपयोग करते हैं:

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

समस्या यह है कि एफ़टीपी त्रुटि में समाप्त होने पर भी आदेश सफल होने लगता है। साथ ही, xp_cmdshell का उपयोग विशेष अनुमतियों की आवश्यकता है और सुरक्षा समस्याओं के लिए कमरा छोड़ सकता है।

0
ro fr bn

4 उत्तर

यदि आपको डेटाबेस के भीतर से एफ़टीपी करने की ज़रूरत है, तो मैं केविन के सुझाव के रूप में एक .NET असेंबली के साथ जाऊंगा। इससे प्रक्रिया पर अधिक नियंत्रण मिलेगा, साथ ही आप रिपोर्टिंग के लिए तालिका में सार्थक त्रुटि संदेशों को लॉग इन करने में सक्षम होंगे।

एक और विकल्प एक कमांड लाइन ऐप लिखना होगा जो कमांड चलाने के लिए डेटाबेस को पढ़ता है। इसके बाद आप प्रत्येक कमांड लाइन ऐप को हर मिनट या जो भी मतदान अवधि की आवश्यकता होती है उसे कॉल करने के लिए निर्धारित समय निर्धारित कर सकते हैं। डेटाबेस सर्वर में सीएलआर समर्थन सक्षम करने से यह अधिक सुरक्षित होगा।

0
जोड़ा

एक और संभावना डीटीएस या एकीकरण सेवाओं (एसक्यूएल सर्वर 7 या 2000 के लिए डीटीएस, 2005 या उच्चतर के लिए एसएसआईएस) का उपयोग करना है। दोनों माइक्रोसॉफ्ट से हैं, एसक्यूएल सर्वर स्थापना (कम से कम मानक संस्करण में) में शामिल हैं और एक एफ़टीपी कार्य है और एसक्यूएल सर्वर से आयात / निर्यात नौकरियों के लिए डिज़ाइन किए गए हैं।

0
जोड़ा

यदि आप SQL 2005 चला रहे हैं तो आप इसे सीएलआर एकीकरण असेंबली में कर सकते हैं और एक सरल एफ़टीपी क्लाइंट बनाने के लिए System.Net नेमस्पेस में एफ़टीपी कक्षाओं का उपयोग कर सकते हैं।

आपको जाल और जाल अपवादों को संभालने और xp_cmdshell का उपयोग करने के सुरक्षा जोखिम को कम करने में सक्षम होने से लाभ होगा।

बस कुछ विचार।

0
जोड़ा

केवी ने एक उदाहरण पोस्ट किया यहां पर जो" सीएलआर एकीकरण असेंबली में ऐसा करने के लिए अपने सुझाव को लागू करता है और एक सरल एफ़टीपी क्लाइंट बनाने के लिए System.Net नामस्थान में एफ़टीपी कक्षाओं का उपयोग करता है। "

0
जोड़ा