2009-05-08 13 views
9

जोड़ने में समस्या होने पर मैं दूरस्थ SQL सर्वर से डेटा खींचने की कोशिश कर रहा हूं। मैं एसक्यूएल प्रमाणीकरण का उपयोग कर रिमोट सर्वर तक पहुंच सकता हूं; मुझे sp_addlinkedserver के साथ समान प्रमाण-पत्रों का उपयोग करके कोई भाग्य नहीं मिला है। कुछ इस तरहएक लिंक किए गए SQL सर्वर

मैं कोशिश कर रहा हूँ: मैं सर्वर सीधे पहुंच सकते हैं (एसक्यूएल प्रबंधन स्टूडियो में) इन सटीक क्रेडेंशियल्स का उपयोग

 

OLE DB provider "SQLNCLI" for linked server "Remote" returned message 
"Login timeout expired". 

OLE DB provider "SQLNCLI" for linked server "Remote" returned message 
"An error has occurred while establishing a connection to the server. 
When connecting to SQL Server 2005, this failure may be caused by the 
fact that under the default settings SQL Server does not allow remote 
connections.". 

Msg 53, Level 16, State 1, Line 0 
Named Pipes Provider: Could not open a connection to SQL Server [53]. 

फिर,,:

Exec sp_dropserver 'Remote', 'droplogins' 
go 

EXEC sp_addlinkedserver 
    @server='Remote', 
    @srvproduct='', 
    @provider='SQLNCLI', 
    @datasrc='0.0.0.0' 

EXEC sp_addlinkedsrvlogin 
    @useself='FALSE', 
    @rmtsrvname='Remote', 
    @rmtuser='User', 
    @rmtpassword='Secret' 

Select Top 10 * from Remote.DatabaseName.dbo.TableName 

यहाँ मैं क्या मिलता है इसलिए यह मेरे नेटवर्क या प्रमाण-पत्रों में कोई समस्या नहीं है।

एसक्यूएल सुरक्षा लॉग इन के विपरीत, मैंने हाल ही में देखे गए अधिकांश उदाहरणों में विंडोज डोमेन खाते शामिल हैं। क्या यह एसक्यूएल प्रमाणीकरण के साथ काम नहीं करता है?

उत्तर

6

यह एसक्यूएल प्रमाणीकरण के साथ काम करता है। वास्तव में यह आसान है, क्योंकि यदि आप SQL प्रमाणीकरण का उपयोग करते हैं तो आपको केर्बेरोस सेट अप करने की आवश्यकता नहीं है।

एक बात, अपने त्रुटि संदेशों के बारे भ्रामक है अपना पता एक आईपी पता है: 123.45.678.90

अपने त्रुटि संदेश नामांकित पाइप्स के बारे में बात कर रहा है। क्या यह एक सुराग हो सकता है?

आपको इसके आईपी पते से टीएसक्यूएल में सर्वर का संदर्भ नहीं देना है। यदि आप alias on the local server जोड़ते हैं, तो दूरस्थ सर्वर पर इंगित करते हुए, आप एक अधिक समझदार नाम दे सकते हैं। आईपी ​​पते से इसका प्रतिबिंब स्पष्ट रूप से असंतोषजनक है।

+0

यह एक दिलचस्प विचार है। यदि मैं @ datasrc पैरामीटर में एक फर्जी आईपी पता, या "foofoofoo" दर्ज करता हूं तो मुझे वही परिणाम मिलते हैं। –

+0

धन्यवाद, यह मुझे सही समाधान के लिए नेतृत्व किया। –

+1

मुझे जवाब दें तो मेरे अच्छे आदमी, मुझे एक उच्च स्कोर चाहिए = डी –

1

यदि आप आईपी पते निर्दिष्ट करते समय नामित पाइप्स पर असफल हो रहे हैं, तो आईपी पते को "टीसीपी:" के साथ उपसर्ग करने का प्रयास करें और देखें कि क्या यह सही रास्ते पर सेट करने में मदद करता है।

+0

धन्यवाद - मैंने कोशिश की और इससे मदद नहीं मिली। –

+1

डोमेन नाम स्वैप @ datasrc = 'tcp: 0.0.0.0' से कनेक्ट करने वाले लोगों के लिए @ datasrc = 'mydomain.com' के साथ, कोई SERVER = आसपास के कई अन्य पदों में नहीं है। –

2

किसी लिंक किए गए सर्वर को जोड़ने के लिए एसएमएस जीयूआई विज़ार्ड के निर्देशों की एक पंक्ति के लिए बाहर यह समझ से, धन्यवाद: "If SQL Server is selected, then the Linked Server name is also the network name of the server."

मैंने सोचा जुड़ा हुआ सर्वर का नाम सिर्फ एक मनमाना उर्फ ​​था।

यह एक आकर्षण की तरह काम करता है - यह एक शर्म की बात है कि मुझे हर बार जब मैं इस लिंक किए गए सर्वर का उपयोग करना चाहता हूं तो आईपी (ब्रैकेट में) टाइप करना होगा, लेकिन वहां आपके पास है।

Exec sp_dropserver '0.0.0.0', 'droplogins' 
go 

EXEC sp_addlinkedserver 
    @server='0.0.0.0', 
    @srvproduct='', 
    @provider='SQLNCLI', 
    @datasrc='0.0.0.0' 

EXEC sp_addlinkedsrvlogin 
    @useself='FALSE', 
    @rmtsrvname='0.0.0.0', 
    @rmtuser='user', 
    @rmtpassword='secret' 
go 

Select Top 10 * from [0.0.0.0].DatabaseName.dbo.TableName 
+0

वाह, वह बेकार है। आप सुनिश्चित हैं कि आपके पास कोई नाम समाधान समस्या नहीं है? –

+0

सुनिश्चित नहीं है कि आपका क्या मतलब है - डीबी सर्वर से जुड़े डोमेन नाम नहीं हैं, केवल एक आईपी पता है। –

+0

हाँ, मेरे पास अब भी यही समस्या है। मैंने प्रदाता के रूप में SQLOLE (या जो कुछ भी) निर्दिष्ट करके इसे एक कनेक्शन स्ट्रिंग देकर काम करने की कोशिश की, इस मामले में @ सर्वर वास्तव में एक मनमाना तार्किक नाम है ... लेकिन यह उत्पादन मशीन (I क्यों भूल गए)। इसलिए मैं इस विधि पर लौट आया और ब्याज की सारणी पर एक दृश्य का उपयोग करके भौतिक स्थान को समझाया, जिसने अब तक काम किया है। – harpo

1

sp_configure 'तदर्थ वितरित प्रश्नों', 1

ओवरराइड के साथ अगले

reconfigure

एसक्यूएल सतह क्षेत्र की जाँच कर ली configuraton -> Databaseengine -> Remoteconnections -> लोकाल और रिमोट कोनक्शन -> शूल्ड दोनों टीसीपी/आईपी और नामित पाइप विकल्प का उपयोग कर रहे हैं (अगर वह विकल्प नहीं चुनते हैं और पुनरारंभ नहीं करते हैं)

इस समस्या को हल करना है लिंक किए गए सर्वर "रिमोट" के लिए ओएलई डीबी प्रदाता "SQLNCLI" संदेश लौटाया "सर्वर से कनेक्शन स्थापित करते समय एक त्रुटि आई है। SQL सर्वर 2005 से कनेक्ट करते समय, यह विफलता तथ्य के कारण हो सकती है कि डिफ़ॉल्ट सेटिंग्स के तहत SQL सर्वर दूरस्थ कनेक्शन की अनुमति नहीं देता है। "

9

इस मुद्दे को हल करने के लिए ऊपर मैं विशेष रूप से टीसीपी निर्दिष्ट करने के लिए लिंक किए गए सर्वर परिभाषा में संशोधन:

EXEC sp_addlinkedserver 
    @server='TEST_LINK', 
    @srvproduct='', 
    @provider='SQLNCLI', 
    @datasrc='tcp:0.0.0.0' 

EXEC sp_addlinkedsrvlogin 
    @useself='FALSE', 
    @rmtsrvname='TEST_LINK', 
    @rmtuser='user', 
    @rmtpassword='secret' 

यह मेरे लिए काम किया। इस विधि भी मुझे दूरस्थ सर्वर के लिए एक गैर मानक पोर्ट निर्दिष्ट करने के लिए अनुमति दी:

EXEC sp_addlinkedserver 
    @server='TEST_LINK', 
    @srvproduct='', 
    @provider='SQLNCLI', 
    @datasrc='tcp:0.0.0.0,1111' 

मुझे आशा है कि इस मदद करता है

0

कभी कभी प्रोटोकॉल सक्षम किया गया है और सतह क्षेत्र विन्यास दूरस्थ कनेक्शन की अनुमति देता है, लेकिन SQL कॉन्फ़िगरेशन सेट होने के बाद से सर्वर ब्राउज़र सेवा को पुनरारंभ नहीं किया गया है। इसका मतलब है कि कॉन्फ़िगरेशन सक्रिय नहीं है।

समस्या निवारण चरण के रूप में SQL सर्वर ब्राउज़र को पुनरारंभ करने का प्रयास करें यदि आपकी कॉन्फ़िगरेशन सेटिंग्स सभी सही दिखती हैं।

माइक

संबंधित मुद्दे