programing

Python을 사용하여 Windows 인증으로 MS SQL Server에 연결하시겠습니까?

muds 2023. 6. 30. 22:38
반응형

Python을 사용하여 Windows 인증으로 MS SQL Server에 연결하시겠습니까?

Windows 인증을 사용하여 pyodbc 라이브러리와 MS SQL Server를 연결하는 방법은 무엇입니까?

MS Access 및 SQL Server Management Studio를 통해 연결할 수 있지만 Python에 대한 작동 연결 ODBC 문자열을 가져올 수 없습니다.

여기 제가 시도한 것이 있습니다(또한 사용하지 않음).'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]')

세미콜론을 사용하는 하나의 긴 문자열로 연결 문자열을 지정할 수 있습니다.;)을 인수 구분 기호로 사용합니다.

작업 예제:

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)

개별 문자열 구성요소 사이에는 쉼표가 없습니다.

키워드를 사용하여 Windows 인증을 지정할 수도 있습니다.승인된 답변과 기능적으로 다른 것은 없습니다. 코드 포맷을 조금 더 쉽게 할 수 있다고 생각합니다.

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

여기에서 localhost를 사용하는 솔루션을 볼 때 추가하고 싶은 것이 있습니다. 제 경험에 따르면 SQL Server는 ODBC 드라이버인지 서비스 자체인지 확실하지 않은 문제가 있으며 로컬 컴퓨터 이름을 지정하지 않으려면 (local)을 사용하는 것을 선호합니다.

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

언급URL : https://stackoverflow.com/questions/16515420/connecting-to-ms-sql-server-with-windows-authentication-using-python

반응형