通过Python3.7连接到SQL Server的操作错误

问题描述

我正在使用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)