SQL सर्वर + SQL सर्वर प्रमाणीकरण + त्रुटि: 18456 में प्रवेश करने में असमर्थ


121

मैंने अपने लोकलहोस्ट \ sql2008 सर्वर पर लॉगिन खाता बनाया है (उदाहरण। User123)

डेटाबेस में मैप किया गया (डिफ़ॉल्ट)

SQL सर्वर पर प्रमाणीकरण मोड दोनों (Windows और SQL) के लिए सेट है

लेकिन SQL सर्वर पर लॉगिन निम्न संदेश के साथ विफल रहता है (User123 के लिए)

नोट: उपयोगकर्ता नाम / पासवर्ड सही ढंग से टाइप किया गया है कि कई बार जाँच की है

गलतियों की जानकारी:

उपयोगकर्ता 'User123' के लिए लॉगिन विफल (Net.SqlClient डेटा प्रदाता)

सर्वर नाम: लोकलहोस्ट \ sql2008 त्रुटि संख्या: 18456 गंभीरता: 14 राज्य: 1 पंक्ति संख्या: 65536

कृपया इस पर कोई मदद।


1
उपयोगकर्ता के लिए SqlServer Management Console के माध्यम से दोनों sql और windows प्रमाणीकरण एक्सेस का परीक्षण करें और देखें कि क्या आप उपरोक्त खाते तक पहुंच सकते हैं। आप किस डेटा प्रदाता और कनेक्शन स्ट्रिंग का उपयोग कर रहे हैं?
जो पीटज़

1
SSMS में लॉगिन करने का प्रयास कर रहा है और यह त्रुटि से ऊपर है।
श्रीधर

1
आप व्यवस्थापक खाते के रूप में लॉगिन कर सकते हैं?
जो पीटज़

व्यवस्थापक के रूप में लॉग इन करें और अपने घटना की जाँच करें। त्रुटि का कारण वहाँ सूचीबद्ध होना चाहिए। प्रबंधन फ़ोल्डर के तहत देखें
जो पीटीजी

वैकल्पिक है कि मेरे लिए काम किया stackoverflow.com/questions/28090747/…
मार्क Schultheiss

जवाबों:


49

डिफ़ॉल्ट लॉगिन विफल त्रुटि संदेश के अलावा कुछ भी नहीं है, लेकिन क्लाइंट उपयोगकर्ता कनेक्शन लॉगिन क्रेडेंशियल के बेमेल होने के कारण सर्वर द्वारा अस्वीकार कर दिया गया है। पहला कार्य जो आप देख सकते हैं, वह यह है कि उस SQL ​​सर्वर आवृत्ति और प्रासंगिक डेटाबेस पर भी प्रासंगिक उपयोगकर्ता हैं, तो यह अच्छा है। जाहिर है कि यदि आवश्यक विशेषाधिकार निर्धारित नहीं किए गए हैं, तो आपको उस उपयोगकर्ता लॉगिन के लिए प्रासंगिक विशेषाधिकार प्रदान करके उस मुद्दे को ठीक करने की आवश्यकता है।

यदि उस उपयोगकर्ता के पास डेटाबेस और सर्वर पर प्रासंगिक अनुदान है, यदि सर्वर उस लॉगिन के लिए किसी भी क्रेडेंशियल समस्या का सामना करता है, तो यह SQL सर्वर को प्रमाणीकरण वापस देने में रोक देगा, क्लाइंट को निम्न त्रुटि संदेश मिलेगा:

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

ठीक है अब, त्रुटि संदेश को देखकर आपको ऐसा लगता है कि स्तर और स्थिति को समझने के लिए यह गैर-वर्णनात्मक है। डिफ़ॉल्ट रूप से ऑपरेटिंग सिस्टम त्रुटि लॉगिन को प्रमाणित करने में मुद्दों की प्रकृति की परवाह किए बिना 1 'राज्य' दिखाएगा। तो आगे की पड़ताल करने के लिए आपको प्रासंगिक SQL सर्वर इंस्टेंस त्रुटि को देखने की आवश्यकता है, इस त्रुटि की गंभीरता और स्थिति के बारे में अधिक जानकारी के लिए। आप लॉग में इसी प्रविष्टि में देख सकते हैं:

2007-05-17 00:12:00.34 Logon     Error: 18456, Severity: 14, State: 8.
or

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

जैसा कि त्रुटि पर गंभीरता और राज्य कॉलम के ऊपर परिभाषित किया गया है, समस्या के स्रोत के लिए सटीक प्रतिबिंब खोजने के लिए महत्वपूर्ण है। राज्य के लिए उपरोक्त त्रुटि संख्या 8 पर पासवर्ड बेमेल के कारण प्रमाणीकरण विफलता का संकेत मिलता है। ऑनलाइन पुस्तकें संदर्भित करती हैं: डिफ़ॉल्ट रूप से, 19 से कम की उपयोगकर्ता-परिभाषित संदेश Microsoft Windows अनुप्रयोग लॉग में नहीं होती हैं जब वे होते हैं। उपयोगकर्ता-परिभाषित संदेशों की गंभीरता 19 से कम है इसलिए SQL सर्वर एजेंट अलर्ट को ट्रिगर न करें।

SQL सर्वर प्रोटोकॉल (Dev.team) में प्रोग्राम मैनेजर सुंग ली ने त्रुटि स्थिति विवरण के बारे में और जानकारी दी है: सामान्य त्रुटि राज्यों और उनके विवरण निम्न तालिका में दिए गए हैं:

ERROR STATE       ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5           Invalid userid
6                 Attempt to use a Windows login name with SQL Authentication
7                 Login disabled and password mismatch
8                 Password mismatch
9                 Invalid password
11 and 12         Valid login but server access failure
13                SQL Server service paused
18                Change password required


Well I'm not finished yet, what would you do in case of error:

2007-05-17 00:12:00.34 Logon     Login failed for user '<user name>'.

आप देख सकते हैं कि SQL सर्वर आवृत्ति के त्रुटि लॉग से परिभाषित कोई गंभीरता या राज्य स्तर नहीं है। तो अगला समस्या निवारण विकल्प ईवेंट व्यूअर की सुरक्षा लॉग को देखना है [संपादित करें क्योंकि स्क्रीन शॉट गायब है लेकिन आपको मिलता है

विचार, दिलचस्प घटनाओं के लिए इवेंट लॉग में देखें]।


1
धन्यवाद देखेंगे और देखेंगे कि यह कैसे जाता है
श्रीधर

1
मृत लिंक कृपया संशोधित करने पर विचार करें
क्रिस हेस

10
इसके नीचे दिए गए बेहतर उत्तर को चुना जाना चाहिए, इसे नहीं।
void.pointer

4
पोस्ट को नीचे पढ़ें।
लेवी फुलर

6
@ void.pointer ओपी पहले से ही स्थापित है कि "SQL सर्वर पर प्रमाणीकरण मोड दोनों (विंडोज और एसक्यूएल) के लिए सेट है"। इसलिए नीचे दिए गए पोस्ट की इस सवाल की कोई प्रासंगिकता नहीं है।
मांची

336

आपको SQL सर्वर प्रमाणीकरण सक्षम करने की आवश्यकता है:

  1. ऑब्जेक्ट एक्सप्लोरर में, सर्वर पर राइट क्लिक करें और "गुण" पर क्लिक करें।

DBMS गुण संवाद

  1. "सर्वर गुण" विंडो में बाईं ओर पृष्ठों की सूची में "सुरक्षा" पर क्लिक करें। "सर्वर प्रमाणीकरण" के तहत "SQL सर्वर और विंडोज प्रमाणीकरण मोड" रेडियो विकल्प चुनें।

SQL सर्वर प्रमाणीकरण संवाद

  1. SQLEXPRESS सेवा को पुनरारंभ करें।

29
ओह, आप एक लाख बार धन्यवाद। मुख्य रूप से शब्द "पुनरारंभ" के लिए ऊपर!
मैग्नस स्मिथ

4
मुझे पता है कि यह पुराना है, लेकिन इसने मेरी गांड को पूरी तरह से बचा लिया है। धन्यवाद प्रतीक इसकी प्रशंसा करना। पुनरारंभ करने की आवश्यकता है!
लेवी फुलर

3
यदि ओपी स्पष्ट रूप से कहता है कि "SQL सर्वर पर प्रमाणीकरण मोड दोनों (Windows और SQL)" पर सेट है तो यह काम क्यों करना चाहिए?
टिम श्मेल्टर

4
यह उत्तर बेमानी है और प्रश्न के लिए उपयोगी नहीं है। ओपी ने पहले से ही स्थापित किया है कि "एसक्यूएल सर्वर पर प्रमाणीकरण मोड दोनों (विंडोज और एसक्यूएल) के लिए सेट है"।
मांची

1
ये कमाल था .. !! धन्यवाद PrateekSaluja
अमीन सैयद

44

मेरे पास भी यही समस्या थी, हालांकि मेरा था क्योंकि मैंने सर्वर प्रमाणीकरण को "एसक्यूएल सर्वर और विंडोज ऑथेंटिकेशन मोड" में सेट नहीं किया था (जो आपके पास था) मैं यहां सिर्फ इसका उल्लेख करना चाहता था अगर कोई आपके प्रश्न में चूक गया था।

आप इस तक पहुँच सकते हैं

  • उदाहरण के लिए राइट क्लिक करें (IE SQLServer2008)
  • "गुण" चुनें
  • "सुरक्षा" विकल्प चुनें
  • "SQL सर्वर और Windows प्रमाणीकरण मोड" के लिए "सर्वर प्रमाणीकरण" बदलें
  • SQLServer सेवा को पुनरारंभ करें
    • उदाहरण के लिए राइट क्लिक करें
    • "पुनरारंभ करें" पर क्लिक करें

6
मैंने दो घंटे ऐसे बिताए क्योंकि मुझे यह नहीं मिल रहा था कि मुझे पूरे सर्वर को रीस्टार्ट करने की आवश्यकता है। यह सिर्फ पागल है कि ऐसी चीज के लिए एक पुनरारंभ की आवश्यकता होती है। Microsoft के पास उस क्रैपवेयर की कोई सीमा नहीं है जिसे वे बाहर थूकते हैं।
यूजर

1
यह इस बात के लिए भी महत्वपूर्ण उत्तर है कि अमेज़ॅन ईसी 2 उदाहरण से क्यों नहीं जुड़ा जा सकता है जो उस पर SQL सर्वर स्थापित है।
टेमन शिपही

19

आप इस तक पहुँच सकते हैं

Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
    Right click on instance
    Click "Restart"

बस किसी और को इसे पढ़ने के लिए: इसने मेरे लिए 2012 SQL सर्वर पर भी काम किया। धन्यवाद


1
धन्यवाद यह एकदम सही था, सीधे बिंदु पर .. स्वीकृत उत्तर अच्छी जानकारी से भरा है, लेकिन यह मेरे लिए काम किया है।
टोनी

4
यह ओपी के लिए काम नहीं कर सकता क्योंकि उन्होंने उल्लेख किया है कि "SQL सर्वर पर प्रमाणीकरण मोड दोनों (विंडोज और एसक्यूएल) के लिए सेट है"।
टिम श्मेल्टर

1

समस्या का सही समाधान यह सुनिश्चित करना है कि SQL सर्वर प्रमाणीकरण आपके SQL सर्वर के लिए चालू है।


1

"SQL सर्वर और Windows प्रमाणीकरण मोड" को सक्षम करने के बाद, निम्न पर नेविगेट करें।

  1. कंप्यूटर प्रबंधन (प्रारंभ मेनू में)
  2. सेवाएँ और अनुप्रयोग
  3. SQL सर्वर कॉन्फ़िगरेशन प्रबंधक
  4. SQL सर्वर नेटवर्क कॉन्फ़िगरेशन
  5. MSSQLSERVER के लिए प्रोटोकॉल
  6. टीसीपी / आईपी पर राइट क्लिक करें और इसे सक्षम करें।

अंत में SQL सर्वर को पुनरारंभ करें।

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