问题描述
我正在使用Python 3.7,几年来,我有一个使用以下代码连接到sql Server的Python脚本:
con_string = 'DRIVER={sql Server};SERVER='+ server +';DATABASE=' + database
cnxn = pyodbc.connect(con_string)
cursor = cnxn.cursor()
最近在运行脚本时出现以下错误:
OperationalError: ('08001','[08001] [Microsoft][ODBC sql Server Driver][TCP/IP Sockets]SSL Security error (18) (sqlDriverConnect); [08001] [Microsoft][ODBC sql Server Driver][TCP/IP Sockets]Connectionopen (SECCreateCredentials()). (1)')
我不太确定如何解释这一点,并曾尝试寻找解决方案,但在理解其中的大部分内容时却遇到困难?
谢谢
更新2020年8月18日
借助Gords的帮助,我更新了驱动程序并根据以下答案构建了新的连接字符串:
Pyodbc error Data source name not found and no default driver specified paradox
con_string = 'DRIVER={ODBC Driver 17 for sql Server};TrustServerCertificate=No;Network=DBMSSOCN;DATABASE='+database+';WSID=L13-CHRISTOPHER;APP={Microsoft® Windows® Operating System};Trusted_Connection=Yes;SERVER='+server+';'
但是我仍然收到错误消息
OperationalError: ('08001','[08001] [Microsoft][ODBC sql Server Driver][TCP/IP Sockets]SSL Security error (18) (sqlDriverConnect); [08001] [Microsoft][ODBC sql Server Driver][TCP/IP Sockets]Connectionopen (SECCreateCredentials()). (1)')
谢谢
解决方法
方法1 :-签出:
con_string = pyodbc.connect(driver='{SQL Server}',host=server,database=db1,trusted_connection=tcon)
cursor = cnxn.cursor()
如果Method-1不适用于您,则您的SQL Server驱动程序可能需要 TLS 1.0,它将在您的计算机上被禁用。更改为 SNAC 的最新版本将为您解决问题
con_string = pyodbc.connect(driver='{SQL Server Native Client 11.0}',trusted_connection=tcon)