목표 : Python을 통해 원격 MSSQL 2016 서버에 연결합니다.
주요 접근 방식 : https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX의 튜토리얼을 밀접하게 따랐습니다 .
문제점 : tsql을 통해 연결할 수 있지만 isql이 작동하지 않습니다. 오류
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[37000][unixODBC][FreeTDS][SQL Server]Login failed for user 'DOMAIN\user-p'
[37000][unixODBC][FreeTDS][SQL Server]Cannot open database "TIT_BI_OPERATIONS" requested by the login. The login failed.
시도한 것 :
설정 : odbc.ini
[ODS_DSN]
Description = Connection to ODS MS_SQL 2016
Driver = FreeTDS
Servername = ODS_DSN
Port = 40000
Database = TIT_BI_OPERATIONS
odbcinst.ini
[FreeTDS]
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
UsageCount=1
freetds.conf
[ODS_DSN]
host = 164.10.17.77
port = 40000
tds version = 7.4
client charset = UTF-8
메모:
이 연결 문제에서 벗어나기 위해 어떤 방향으로 가야할지 생각이된다면 대단히 감사하겠습니다. 감사합니다!
Windows 도메인 인증을 사용하는 경우 FreeTDS를 사용해야합니다. 이상하게도 Windows 도메인 인증은 Microsoft ODBC 드라이버에서 지원하지 않고 FreeTDS 만 지원합니다.
tsql
명령으로 연결할 수 있으므로 FreeTDS가 작동 중임을 의미합니다. Python에서 직접 연결하는 것이 좋습니다. 다음과 같은 연결 문자열을 시도하십시오.
import pyodbc
con = pyodbc.connect(
r"DRIVER={FreeTDS};"
r"SERVER=164.10.17.77;"
r"PORT=40000;"
r"DATABASE=TIT_BI_OPERATIONS;"
f"UID=DOMAIN\\user-p;"
f"PWD=yourpassword;"
r"TDS_Version=7.3;"
)
cursor = con.cursor();
cursor.execute("SELECT 'this' AS that")
for row in cursor.fetchall():
print(row)
UID
Windows 도메인 인증에 연결 하려면 필드에 두 개의 백 슬래시가 필요 합니다. 그것은 오타가 아닙니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다