जानकारी: हमारे पास एक तृतीय पक्ष एप्लिकेशन है जिसका उपयोग हम अपनी कंपनी में उत्पादन के लिए करते हैं। यह प्रोग्राम ओडीबीसी के माध्यम से हमारे SQL सर्वर 2012 डेटाबेस से कनेक्ट करने के लिए एक डीएसएन का उपयोग करता है। यह एप्लिकेशन सर्वर 2003 (एमएडीसी 2.8) के तहत ठीक से काम करता है, हालांकि जब मैं इसे सर्वर 2008 x86 (DAC 6.0) में लाता हूं, तो मुझे "Microsoft OLE DB प्रदाता SQL सर्वर लॉगिन उपयोगकर्ता XXX के लिए विफल" के साथ कनेक्शन विफल रहा है। मुझे लगता है कि सर्वर 2008 के साथ शुरू होने वाले विंडोज सर्वर पर ट्रू टू फाल्स से बदलकर "लगातार सुरक्षा जानकारी" के डिफ़ॉल्ट होने के कारण यह है (डीएसी 6.0 में परिवर्तित)। मेरे पास एप्लिकेशन के अंदर कनेक्शन स्ट्रिंग को बदलने की पहुंच नहीं है क्योंकि यह तीसरी पार्टी है। के रूप में इस articleADO.Net "स्थायी सुरक्षा जानकारी" को सही करें
प्रश्न में देखी गई: वहाँ इतना है कि यह मान कनेक्शन स्ट्रिंग के झूठे बाहर के बजाय सही पर चूक है ADO.Net के व्यवहार को बदलने के लिए कोई तरीका है। मैं कम से कम साबित या अस्वीकार करने में सक्षम होना चाहता हूं कि यह समस्या इस मुद्दे को उत्पन्न करती है।
नोट: मुझे पता है यह एक बहुत बड़ा सुरक्षा इस सेटिंग के साथ छेड़छाड़ मुद्दा है और अगर यह सुनिश्चित करने के लिए सर्वर और आवेदन अलग कर रहे हैं बदल गया है हम सही सावधानियां बरतने की जाएगी।
समाधान: नीचे @ विलियम द्वारा प्रदान किया गया। यदि आप अपने SQL सर्वर तृतीय पक्ष एप्लिकेशन को सर्वर 2003 से सर्वर 2008+ में अपडेट कर रहे हैं और आपको उपरोक्त कनेक्शन मिल रहे हैं, जहां 2003 में आपने नहीं किया था, तो SQL खाते के लिए पासवर्ड रिक्त स्थान पर सेट करें (अस्थायी रूप से या केवल स्टेजिंग में, यह है उत्पादन में रिक्त छोड़ना बहुत खतरनाक है) यह जांचने के लिए कि रिक्त पासवर्ड प्रदान किए जाने पर एप्लिकेशन फिर से काम करता है या नहीं। यदि ऐसा होता है तो एप्लिकेशन कनेक्शन स्ट्रिंग में निरंतर सुरक्षा जानकारी सेट नहीं कर रहा है और वह मान जो सत्य पर डिफ़ॉल्ट था, अब गलत पर डिफ़ॉल्ट है। आपका एप्लिकेशन सर्वर 2003 के तहत उपयोग तक ही सीमित हो सकता है और सर्वर 2008+ पर ठीक से काम नहीं कर सकता है। ऐसा कोई तरीका नहीं है कि मैं मान को डिफ़ॉल्ट पर वापस प्राप्त करने के लिए पा सकूं।
क्या आपने [HKLM] \ सॉफ़्टवेयर \ ODBC \ ODBC.INI \ के तहत रजिस्ट्री में अपने डीएसएन कनेक्शन को संपादित करने का प्रयास किया है? मेरे पास – KarmaEDV
है। इतने करीब के रूप में मैं यह कह सकता हूं कि आवेदन शुरू होने पर हर बार क्या होता है। यदि एप्लिकेशन स्थापित नहीं किया गया है तो यह रूट में एक नई .DSN फ़ाइल बनाता है, फिर अंतिम उपयोगकर्ता को इस फ़ाइल को सेटिंग्स के साथ कॉन्फ़िगर करने की अनुमति देता है, जब उपयोगकर्ता ओडीबीसी रजिस्ट्री में सेटिंग्स में लॉग इन करता है, तो अंतिम सफल लॉग से अपडेट किया जाता है, तो ऐप के लिए reg DSN का उपयोग किया जाता है। कनेक्शन स्ट्रिंग ऑब्जेक्ट कोड में बनाई गई है और रजिस्ट्री में संग्रहीत नहीं है। मैंने डीएसएन के तहत रजिस्ट्री में अतिरिक्त कुंजी जोड़ने का प्रयास किया है, लेकिन वे कोड में ऑब्जेक्ट में अधिलेखित हो जाते हैं या लोड नहीं होते हैं। –
मुझे एक ही समस्या है। हमारे पास एक विरासत एप्लिकेशन है (जिसके लिए हमारे पास कोई स्रोत नहीं है) कि हमें विंडोज 2008 का उपयोग करने के लिए बंदरगाह की आवश्यकता है, और ऐप अधिक कनेक्शन बनाने के लिए कनेक्शन ऑब्जेक्ट से कनेक्शन स्ट्रिंग को वापस खींचने में सक्षम होने पर निर्भर करता है। यह पर्सिस्ट सिक्योरिटी इन्फो के प्रभाव से पहले लिखा गया था, इसलिए यह सब कुछ निर्दिष्ट नहीं करता है (निहित रूप से डिफ़ॉल्ट पर निर्भर करता है)। Windows Vista में गलत तरीके से बदलते हुए डिफ़ॉल्ट मान के साथ और बाद में, एप्लिकेशन वहां नहीं चलेगा। मुझे निरंतर सुरक्षा जानकारी के लिए सिस्टम (या उपयोगकर्ता) डिफ़ॉल्ट सेट करने का कोई तरीका नहीं मिला है। – William