उपयोगकर्ता के लिए लॉगिन विफल रहा - त्रुटि 18456 - गंभीरता 14, राज्य 38


23

संदेश जो SQL सर्वर लॉग फ़ाइल व्यूअर दिखाता है:

Login failed for user [User]
Error: 18456, Severity: 14, State 38

इसका वास्तव में क्या मतलब है:

Failed to open the explicitly specified database

मेरा प्रश्न:

सहायक विवरण पाठ के साथ गंभीरता और स्थिति के प्रत्येक संयोजन के लिए 18456 त्रुटियों (लॉगिन विफल) के सभी रूपों की कहीं न कहीं एक सूची है?

मेरे पास एक Google है, लेकिन विशिष्ट संयोजनों के अलावा कुछ नहीं मिल सकता है।

जवाबों:


25

राज्य कोड और उनके अर्थ।

1      'Account is locked out'
2      'User id is not valid'
3-4    'Undocumented'
5      'User id is not valid'
6      'Undocumented'
7      'The login being used is disabled'
8      'Incorrect password'
9      'Invalid password'
10     'Related to a SQL login being bound to Windows domain password policy enforcement.
        See KB925744.'
11-12  'Login valid but server access failed'
16     'Login valid, but not permissioned to use the target database'
18     'Password expired'
27     'Initial database could not be found'
38     'Login valid but database unavailable (or login not permissioned)'

अधिक विस्तृत जानकारी हारून बर्ट्रेंड के ब्लॉग में उपलब्ध है ।


@PeteOakly आप राज्य 38 के लिए यहां सही राह पर हैं। राज्य 38 के कारणों में से एक के रूप में एक लापता डेटाबेस के बारे में नीचे पोस्ट देखें।
जॉन डायर

4

कनेक्शन स्ट्रिंग में डेटाबेस के नाम के टाइपो के कारण राज्य कोड 38 के साथ मेरी भी यही त्रुटि थी।


2

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


2

मेरे पास राज्य 38 के साथ 18456 भी थे। यह पता चला कि कनेक्शन स्ट्रिंग में 'एकीकृत सुरक्षा = सत्य' था जो कि मैं नहीं चाहता था। कनेक्शन स्ट्रिंग में उपयोगकर्ता का पासवर्ड और पासवर्ड होता था जिसका उपयोग किया जाना था। जब मैंने सेटिंग को गलत में बदल दिया, तो सब ठीक था।


2

मुझे यह त्रुटि कई उदाहरणों के साथ SQL सर्वर पर लॉग इन करने की कोशिश करते हुए मिली। कनेक्शन स्ट्रिंग ने एक उदाहरण का नाम नहीं दिया है। एक बार जब मैंने उदाहरण (SERVERNAME \ INSTANCENAME) का नाम लिया, तो मैं सर्वर से जुड़ने में कामयाब रहा।


2

@ पेइट ओकली राज्य कोड की सूची के साथ सही राह पर है। विशेष रूप से, यह वह कोड है जिसमें हम सभी रुचि रखते हैं:

38 'लॉगिन मान्य लेकिन डेटाबेस अनुपलब्ध (या लॉगिन अनुमति नहीं है)'

मेरी समस्या C # त्रुटि लॉग में शुरू हुई:

अपवाद | PublishedException | 000161 | 10/29/2018 | 11: 06: 40.210 | 16284। भीतरी अपवाद | लॉगिन द्वारा खुला डेटाबेस "InterestingDataBaseName" का अनुरोध नहीं कर सकता। लॉगिन विफल रहा। उपयोगकर्ता 'CORP \ anyuser' के लिए लॉगिन विफल हुआ।

मेरी नज़र "लॉगिन विफल" भाग पर केंद्रित थी । मेरा उपयोगकर्ता इस DB सर्वर के लिए sa था, लॉगिन संभवतः कैसे विफल हो सकता है?

मैंने प्रोग्रामर्स की तिकड़ी द्वारा इस पोस्ट में ठोकर खाई जिसका जवाब था: https://justaprogrammer.net/2012/12/09/a-misleading-sql-error-message-error-18456-severb-14-state-38 /

यह लॉगिन प्रति असफल नहीं है, यह वह डेटाबेस है जिसे मैं एक्सेस करने का प्रयास कर रहा हूं। यह मौजूद नहीं है!

बिंगो! मैंने अन्य कारणों से डेटाबेस का नाम बदल दिया था और कॉन्फ़िगरेशन फ़ाइल को अपडेट नहीं किया था। फिक्स्ड डीबी नाम और चीजें एक बार फिर आकर्षण की तरह काम कर रही हैं।


1

SQL सर्वर कॉन्फ़िगरेशन प्रबंधक में हमारे मामले में | SQL सर्वर नेटवर्क कॉन्फ़िगरेशन | टीसीपी / आईपी | आईपी ​​| टीसीपी पोर्ट गया था नहीं निर्धारित किया है।

बिना हम ODBC कनेक्शन स्थापित कर सकते हैं और यहां तक ​​कि दूरस्थ SQL प्रबंधन स्टूडियो कनेक्शन का उपयोग कर सकते हैं और उपयोगकर्ता के साथ लॉगिन कर सकते हैं। हालाँकि हर बार जब हम अपने Tomcat एप्लिकेशन के url तक पहुँचते हैं, तो इसने jdbc कनेक्शन लॉन्च किया है, तो हम SQL सर्वर में स्पॉट हुए। त्रुटि लॉग इन करें: उपयोगकर्ता 'xxxx' के लिए लॉगिन विफल रहा: कारण स्पष्ट परिभाषित डेटाबेस को खोलने में विफल रहा, त्रुटि 186,6, गंभीर 14 , राज्य 38

यहाँ jdbc कनेक्शन स्ट्रिंग का एक सार

"jdbc:sqlserver://10.10.10.10:1433;databaseName=zzzzzzz" username="yyyyyy" password="xxxxxx" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" defaultAutoCommit="true"/>
<Resource name="jdbc/application" 

यह है कि कहने के लिए भी एसक्यूएल सर्वर नेटवर्क कॉन्फ़िगरेशन में | <उदाहरण नाम> के लिए प्रोटोकॉल | नामित पाइपों को ENABLED होना चाहिए और पाइप नाम \\.\pipe\MSSQL$<instance name>\sql\query को सही ढंग से सेट करना होगा।


1

खैर, यह डेटाबेस अनुमति संबंधित त्रुटि है। मैं इस प्रश्न में अपना समाधान जोड़ रहा हूं क्योंकि, डीबीए की भूमिका को समझना बहुत महत्वपूर्ण है। तो, मेरे सुझाव हैं:

  • सर्वर मैनेजर पर जाएं
  • उपकरण और फिर कंप्यूटर प्रबंधन का चयन करें
  • स्थानीय उपयोगकर्ताओं और समूहों की जाँच करें
  • कंप्यूटर / डोमेन को प्रशासित करने के लिए विवरण के साथ व्यवस्थापक नाम की जाँच करें।

अब, उस उपयोगकर्ता नाम से लॉगिन करें और आप उपयोगकर्ता को पहुँच प्रदान कर सकते हैं। ऐसा करने के लिए:

सुरक्षा पर जाएं , लॉगिन पर राइट क्लिक करें और न्यू लॉगिन चुनें

लॉगिन विंडो में, आप उपयोगकर्ता नाम टाइप कर सकते हैं या इसे खोज सकते हैं। सूची से उपयोगकर्ता का चयन करें और फिर से ठीक और ठीक क्लिक करें।

एक ही लॉगिन विंडो पर, सर्वर रोल्स पर क्लिक करें , और चयनित उपयोगकर्ता तक पहुंच प्रदान करें जैसे: sysadmin, serveradmin, decreator आदि; ठीक पर क्लिक करें ।

यदि आप एक व्यक्तिगत डेटाबेस तक पहुँच प्रदान करना चाहते हैं, तो उपयोगकर्ता मानचित्रण पर जाएँ और अपनी आवश्यकता के अनुसार पहुँच प्रदान करें।

: डेटाबेस की स्थिति की जांच करें अनुमति: अनुदान लॉगिन: सक्षम

ओके पर क्लिक करें


2
यह एक बहुत अच्छा जवाब हो सकता है यदि आप डेटाबेस उपयोगकर्ता संबंध के लिए एक लापता SQL सर्वर लॉगिन की संभावना पर ध्यान केंद्रित कर सकते हैं या संभावना है कि SQL सर्वर लॉगिन का डिफ़ॉल्ट डेटाबेस अब उपलब्ध नहीं है। वर्तमान में खाता बनाने के तरीके के बारे में आपका जवाब सिर्फ एक सामान्यीकृत सिफारिश है। मुझे यकीन नहीं है कि आपके उत्तर का पहला भाग ओपी के मुद्दे को हल करने में कैसे मदद करेगा। क्या आप उस हिस्से की व्याख्या कर सकते हैं?
जॉन उर्फ ​​हॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.