SQL सर्वर से डोमेन उपयोगकर्ता के स्वामित्व वाले SSIS पैकेज को स्थानीय सेवा खाते पर चलाना


10

मैं एक SSIS पैकेज चलाना चाहता हूँ जिसमें ट्रांसफर SQL सर्वर ऑब्जेक्ट्स कार्य हों। शामिल सर्वर एक ही डोमेन पर हैं, लेकिन SQL सर्वर सेवाएँ स्थानीय सेवा खातों पर चल रही हैं। तो पर्यावरण इस तरह दिखता है:

डोमेन

सर्वर 1

  • SQL सर्वर स्थानीय खाते पर चल रहा है
  • फाइलसिस्टम पर: एसएसआईएस पैकेज
  • SQL सर्वर एजेंट में: एक नौकरी

सर्वर 2

  • SQL सर्वर स्थानीय खाते पर चल रहा है

दोनों सर्वरों पर लॉग इन करने में सक्षम होने के लिए, मैंने एक डोमेन खाता बनाया है जिसका उपयोग सेवा खाते के रूप में किया जाएगा। जब मैं सर्वर 1 पर लॉग इन करने के लिए इस डोमेन खाते का उपयोग करता हूं, और फिर फ़ाइल सिस्टम से पैकेज को निष्पादित करता हूं, तो हर कदम सफल होता है। हालाँकि, जब मैं एसक्यूएल सर्वर में नौकरी जोड़ने की कोशिश करता हूं तो मैं निम्नलिखित समस्याओं में से एक में भाग लेता हूं:

स्थिति 1. नौकरी के मालिक: स्थानीय खाता; डोमेन खाते के लिए प्रॉक्सी के रूप में SSIS चरण चलाएँ । जब मैं नौकरी के मालिक को स्थानीय खाते में सेट करता हूं, लेकिन डोमेन खाते के लिए प्रॉक्सी के रूप में नौकरी चलाता हूं, तो नौकरी खुद ही सफलतापूर्वक निष्पादित हो जाएगी, लेकिन पैकेज त्रुटियों को फेंक देता है

निष्पादन निम्न त्रुटि के साथ विफल हुआ: "निर्देशिका 'LocalApplicationData' मौजूद नहीं है।"

यह त्रुटि सर्वर 1 पर डोमेन उपयोगकर्ता के लिए व्यवस्थापक-अधिकारों के साथ लॉगिन बनाकर तय की जा सकती है, लेकिन यह स्पष्ट रूप से एक वांछनीय समाधान नहीं है। SQL सर्वर एजेंट / DTS समूहों में से किसी एक में खाता जोड़ना काम नहीं करता है।

स्थिति 2. नौकरी के मालिक: डोमेन खाता; डोमेन खाते के लिए प्रॉक्सी के रूप में SSIS चरण चलाएँ । जब मैं नौकरी के मालिक और डोमेन खाते के लिए कदम के लिए 'उपयोगकर्ता के रूप में चला' दोनों सेट करता हूं, तो नौकरी निम्न त्रुटि के साथ शुरू नहीं होगी:

यह निर्धारित करने में असमर्थ कि नौकरी के मालिक (डोमेन \ डोमेन उपयोगकर्ता) के Job nameपास सर्वर एक्सेस है (कारण: Windows NT समूह / उपयोगकर्ता 'डोमेन \ डोमेन उपयोगकर्ता', त्रुटि कोड 0x5 के बारे में जानकारी प्राप्त नहीं कर सका। [SQLSTATE 42000] (त्रुटि 15404) ।

मेरा मानना ​​है कि अंतिम त्रुटि है क्योंकि SQL सर्वर एक स्थानीय खाते पर चलता है और उसके बाद यह नहीं देख सकता है कि कौन से अधिकार डोमेन खाते हैं।

नौकरी चलाने का सही तरीका क्या है? स्थिति 2 मुझे क्लीनर लगता है, लेकिन असंभव लगता है क्योंकि SQL सर्वर स्थानीय खाते पर चलता है। स्थिति 1 भी काम करेगा, लेकिन मेरे SQL सर्वर पर डोमेन उपयोगकर्ता प्रशासनिक अधिकार देने से कुछ नहीं होने वाला है।


अपडेट करें:

@JonSeigel और @ Mr.Brownstone:

यह प्रशंसनीय लगता है कि यह समस्या है क्योंकि अनुमतियों की कमी है। हालाँकि, त्रुटि गैर-अस्तित्व 'LocalApplicationData' के बारे में है - प्रत्येक खाते के लिए उत्पन्न फ़ोल्डर में से एक। मैंने पहले से ही सर्वर के साथ क्रेडेंशियल्स के लिए लॉग इन किया है जिसके तहत पैकेज चलता है, (जिससे एक प्रोफाइल डायरेक्टरी बना रहा है) और प्रोफ़ाइल निर्देशिका के लिए अनुमतियों के कई संयोजनों की कोशिश की। इस विशिष्ट निर्देशिका पर लगभग सभी अनुमतियाँ मैन्युअल रूप से देने पर भी, मुझे ऊपर उल्लिखित त्रुटि मिलती है।

कुछ और शोध करते हुए, मैं http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441 पर एक फोरम थ्रेड में भाग लिया, जो काफी समान है - बिना समाधान के या तो।


क्या कोई कारण है कि आप SQL सेवाओं के लिए डोमेन खाते का उपयोग क्यों नहीं कर रहे हैं?
एरिक हिगिंस

हां, लेकिन मुझे नहीं पता कि किस कारण से (मुझे डीटीएपी चक्र के साथ कुछ लगता है और डोमेन हर जगह उपलब्ध नहीं है)। वैसे भी, यह एक दिया गया वातावरण है जिसे मुझे बदलने की अनुमति नहीं है।
vstrien

स्थिति # 1 का उत्तर प्रतीत होता है। मुझे लगता है कि आपको मिलने वाला त्रुटि संदेश पैकेज के भीतर से है। दूसरे शब्दों में, पैकेज निष्पादित हो रहा है, लेकिन इसके भीतर एक कार्य के लिए सेवा खाते से अधिक अनुमतियों की आवश्यकता होती है। आपको इसे सफल बनाने के लिए खाते में प्रशासक-स्तर की अनुमति देने की आवश्यकता नहीं हो सकती है (इसके बजाय दानेदार अनुमति देना, या अनुमति की आवश्यकता नहीं करने के लिए प्रक्रिया को बदलना)।
जॉन सिगेल

क्या आप दूरस्थ SQL सर्वर (सर्वर 2) में SQL लॉगिन (SQL प्रमाणीकरण) जोड़ सकते हैं? यदि आपके पास वह विकल्प है, तो आप गंतव्य के लिए उपयोग किए जाने वाले SSIS कनेक्शन में SQL लॉगिन का उपयोग कर सकते हैं। इसका मतलब है कि आपको पैकेज को एन्क्रिप्ट करने के लिए एक पासवर्ड का उपयोग करना होगा, लेकिन यह आपकी समस्या को हल करेगा।
Roi Gavish

@Justicator: शायद, अंतिम उपाय के रूप में। लेकिन जब भी डोमेन लॉगिन संभव होता है, मैं SQL प्रमाणीकरण का उपयोग नहीं करना पसंद करता हूं।
vstrien

जवाबों:


5

मेरा निजी विचार है कि विकल्प # 1 जाने का रास्ता है। लेकिन मुझे आपके लिए डोमेन खाता स्थानीय व्यवस्थापक पहुँच प्रदान करने की कोई आवश्यकता नहीं है। यह मुझे लगता है कि इसे कुछ फ़ोल्डरों और फ़ाइलों तक पहुंच की आवश्यकता है और इसलिए आप डोमेन उपयोगकर्ता को केवल उन संसाधनों तक पहुंच प्रदान कर सकते हैं जिन्हें पैकेज को सफलतापूर्वक चलाने की आवश्यकता है। यह फ़ाइल / फ़ोल्डर गुण संवाद बॉक्स के माध्यम से किया जा सकता है और सुरक्षा टैब का चयन कर सकता है - इसे हर फ़ाइल और फ़ोल्डर के लिए सेट करने की आवश्यकता नहीं होनी चाहिए क्योंकि आप मूल निर्देशिका की अनुमतियाँ सेट कर सकते हैं और उन्हें बाल संपत्तियों को ओवरराइड करने के लिए सेट कर सकते हैं।

मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.