26

मैं पीईओडीबीसी लाइब्रेरी के साथ विंडोज प्रमाणीकरण का उपयोग कर एमएस एसक्यूएल सर्वर कैसे कनेक्ट करूं?पायथन का उपयोग कर विंडोज प्रमाणीकरण के साथ एमएस एसक्यूएल सर्वर से कनेक्ट हो रहा है?

मैं एमएस एक्सेस और एसक्यूएल सर्वर प्रबंधन स्टूडियो के माध्यम से कनेक्ट कर सकता हूं, लेकिन पाइथन के लिए एक कार्य कनेक्शन ओडीबीसी स्ट्रिंग नहीं मिल सकता है।

यहाँ मैं (भी 'Trusted_Connection=yes' के बिना) की कोशिश की है है:

pyodbc.connect('Trusted_Connection=yes', 
       driver='{SQL Server}', server='[system_name]', 
       database='[databasename]') 

pyodbc.connect('Trusted_Connection=yes', uid='me', 
       driver='{SQL Server}', server='localhost', 
       database='[databasename]') 

pyodbc.connect('Trusted_Connection=yes', 
       driver='{SQL Server}', server='localhost', 
       uid='me', pwd='[windows_pass]', database='[database_name]') 

pyodbc.connect('Trusted_Connection=yes', 
       driver='{SQL Server}', server='localhost', 
       database='[server_name]\\[database_name]') 

pyodbc.connect('Trusted_Connection=yes', 
       driver='{SQL Server}', server='localhost', 
       database='[server_name]\[database_name]') 

pyodbc.connect('Trusted_Connection=yes', 
       driver='{SQL Server}', 
       database='[server_name]\[database_name]') 

उत्तर

41

आप एक लंबी स्ट्रिंग तर्क विभाजक के रूप में अर्द्ध कोलन (;) का उपयोग करता है के रूप में कनेक्शन स्ट्रिंग निर्दिष्ट कर सकते हैं।

कार्य उदाहरण:

import pyodbc 
cnxn = pyodbc.connect(r'Driver={SQL Server};Server=.\SQLEXPRESS;Database=myDB;Trusted_Connection=yes;') 
cursor = cnxn.cursor() 
cursor.execute("SELECT LastName FROM myContacts") 
while 1: 
    row = cursor.fetchone() 
    if not row: 
     break 
    print(row.LastName) 
cnxn.close() 

मापदंडों के बहुत सारे के सिलसिले तार के लिए, निम्न इसी कार्य को पूरा होगा, लेकिन कुछ हद तक एक अधिक पठनीय रास्ते में:

conn_str = (
    r'Driver={SQL Server};' 
    r'Server=.\SQLEXPRESS;' 
    r'Database=myDB;' 
    r'Trusted_Connection=yes;' 
    ) 
cnxn = pyodbc.connect(conn_str) 

(ध्यान दें कि वहाँ व्यक्तिगत स्ट्रिंग घटकों के बीच कोई कॉमा नहीं है।)

+0

धन्यवाद, कि '। वाक्यविन्यास ने चाल की है। ध्यान दें कि: 'pyodbc.connect ('Trusted_Connection = yes', driver = '{SQL सर्वर}', सर्वर = '। \ [Server_name]', डेटाबेस = '[डेटाबेस_नाम]') 'भी काम किया। – stackoverflowuser95

+0

उपयोगकर्ता आईडी और पासवर्ड से कैसे जुड़ें – karnaf

+0

यह मेरे लिए कोई काम नहीं किया। हालांकि नीचे टिप्पणी टिप्पणी की। – CyprUS

16

विंडोज प्रमाणीकरण भी विशिष्ट हो सकता है एक कीवर्ड का उपयोग कर fied। कुछ भी नहीं कार्यात्मक रूप में स्वीकार कर लिया जवाब से अलग है, मैं यह थोड़ा आसान स्वरूपण कोड बनाता है लगता है:

cnxn = connect(driver='{SQL Server}', server='localhost', database='test',    
       trusted_connection='yes') 
+0

हाँ, मैंने लिखा है कि स्वीकृत उत्तर पर टिप्पणी में। – stackoverflowuser95

+0

@ stackoverflowuser95 आपकी टिप्पणी में 'trust_connection' कीवर्ड शामिल नहीं है, यह कीवर्ड और तारों का मिश्रण है। तीन विकल्पों [यहां] (https://code.google.com/p/pyodbc/wiki/Module#connect) के बीच मतभेदों पर ध्यान दें। – Bryan

0

बस कुछ जोड़ने के लिए के रूप में मैं समाधान यहाँ स्थानीय होस्ट का उपयोग करते हुए देखना चाहते थे; मेरे अनुभव में, SQL सर्वर के साथ समस्याएं हैं, सुनिश्चित नहीं है कि यह ओडीबीसी ड्राइवर या सेवा है, और यदि आप स्थानीय मशीनों का नाम निर्दिष्ट नहीं करना चाहते हैं तो (स्थानीय) का उपयोग पसंद करते हैं।

cnxn = connect(driver='{SQL Server}', server='(local)', database='test',    
       trusted_connection='yes') 
संबंधित मुद्दे

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