2016-06-08 15 views
8

मैं खिड़की प्रमाणीकरण का उपयोग करके किसी SQL डेटाबेस से कनेक्ट करने के लिए अजगर का उपयोग करने के कोशिश कर रहा हूँ के साथ उपयोगकर्ता डोमेन के लिए असफल \\ उपयोगकर्ता। मैं पदों में से कुछ यहाँ है (जैसे, here) को देखा है, लेकिन सुझाव दिया तरीकों काम करने के लिए नहीं मालूम था।त्रुटि 28000: लॉग इन pyodbc

उदाहरण के लिए, मैं निम्नलिखित कोड का इस्तेमाल किया:

cnxn = pyodbc.connect(driver='{SQL Server Native Client 11.0}', 
         server='SERVERNAME', 
         database='DATABASENAME',    
         trusted_connection='yes') 

लेकिन मैं निम्नलिखित त्रुटि मिली:

Error: ('28000', "[28000] [Microsoft][SQL Server Native Client 11.0][SQL Server] 
Login failed for user 'DOMAIN\\username'. (18456) (SQLDriverConnect); [28000] [Microsoft] 
[SQL Server Native Client 11.0][SQL Server]Login failed for user 'DOMAIN\\username'. 
(18456)") 

(ध्यान दें कि मैं DOMAIN साथ वास्तविक डोमेन नाम और उपयोगकर्ता नाम बदल दिया और username क्रमशः, त्रुटि संदेश में)

मैंने अपने 012 का उपयोग करने का भी प्रयास कियाऔर PWD, जो एक ही त्रुटि हुई थी।

अन्त में, मैं ऊपर के लिंक से सुझाव का पालन करते हुए सेवा खाता बदलने की कोशिश की, लेकिन जब मैं services.msc की Properties के लिए चला गया अपने कंप्यूटर पर, वहाँ कोई Log On टैब था।

मुझे आश्चर्य है कि क्या मैं गलत था और मैं कैसे इस समस्या को ठीक कर सकते हैं।

उत्तर

0

इस cxn स्ट्रिंग का प्रयास करें:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;PORT=1433;DATABASE=testdb;UID=me;PWD=pass') 

http://mkleehammer.github.io/pyodbc/

+0

मुझे लगता है मैं बदलना चाहिए 'वास्तविक सर्वर नाम के साथ localhost'? किसी भी तरह से, मैं त्रुटियों ... – Alex

+0

आप स्पष्ट होना जरूरी है, त्रुटियों मिला है। मुझे काम करने के लिए कुछ भी नहीं दे दो। क्या त्रुटि सामान्य रूप से SQL सर्वर के साथ आपने कितना काम किया है। प्रबंधन स्टूडियो के साथ डीबी से जुड़ा हुआ है और सत्यापित सब कुछ काम कर रहा है और डेटाबेस ऊपर है। और, आपके पास अपने उपयोगकर्ता नाम के साथ डेटाबेस में cxn करने की अनुमति है। – Merlin

+0

मान लीजिए ... कनेक्शन तारों पर दस्तावेज़ों को पढ़ें। यह एक pyodbc समस्या नहीं है। इसकी संभावना से अधिक इसकी खिड़कियां, रास्ते में हो रही है। – Merlin

6

Trusted_connection=yes एसक्यूएल सर्वर बताता है "विंडोज प्रमाणीकरण" उपयोग करने के लिए और अपनी स्क्रिप्ट के Windows क्रेडेंशियल्स का उपयोग एसक्यूएल सर्वर में लॉग इन करने का प्रयास करेंगे उपयोगकर्ता स्क्रिप्ट चला रहा है।

आप एक विशिष्ट SQL सर्वर लॉगिन UID और PWD द्वारा निर्दिष्ट के साथ "एसक्यूएल सर्वर प्रमाणीकरण" उपयोग करना चाहते हैं तो Trusted_connection=no का उपयोग करें (या बस अपने कनेक्शन स्ट्रिंग से Trusted_connection पैरामीटर छोड़ देते हैं)।

+0

क्या कोई अन्य Windows उपयोगकर्ता के रूप में कनेक्ट करने का कोई तरीका है जो लॉग इन किए गए से अलग है? – Sandeep

0

मैं सब कुछ करने की कोशिश की और यह है कि क्या अंत में मेरे लिए काम किया है:

import pyodbc 
driver= '{SQL Server Native Client 11.0}' 

cnxn = pyodbc.connect(
    Trusted_Connection='Yes', 
    Driver='{ODBC Driver 11 for SQL Server}', 
    Server='MyServer,1433', 
    Database='MyDB' 
) 
संबंधित मुद्दे