[ODBC SQL Server 驱动程序][DBNETLIB]SSL 安全错误 (18)

问题描述 投票:0回答:3

我正在尝试使用 pyodbc 4.0.30 和 Python 3.7 连接到 SQL Server。过去几天一切都很顺利,直到今天我收到此错误:

操作错误:('08001','[08001] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]SSL 安全错误 (18) (SQLDriverConnect);[08001] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]ConnectionOpen (SECCreateCredentials())。(1)')`

我的联系方式:

conn = pyodbc.connect('driver={SQL Server};server=redacted;database=uipcc_awdb;uid=redacted;pwd=redacted;trusted_connection=no;')

请注意 我可以通过 SQL Server Management Studio 正常连接到数据库,并且我的计算机、SQL Server 或网络上没有进行任何更改。

我需要强调,我尝试遵循类似问题中提到的内容(但没有成功):

  • 在连接参数中添加
    sslverify=0
  • 在连接参数中添加
    encrypt=0
  • 从我的计算机更改 OBDC 驱动程序,不起作用并且破坏了与 SQL Server Management Studio 的连接
python sql-server odbc pyodbc
3个回答
4
投票

尝试在注册表中的以下位置启用 TLS 1.0:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS1.0\Client\

例如:

更改为:


0
投票

这很可能是 TLS 版本问题。 SQL Server 上可能已禁用 TLS 1.0/TLS 1.1。

目前 pyodbc github 跟踪器上存在一个未解决的问题

并查看另一个问题: Pyodbc 对旧版本的 sql 驱动程序给出异常,但对最新版本失败


0
投票

检查您的司机。我的应用程序使用的是较旧的驱动程序版本。当服务器/网络升级时,应用程序失败(在我的例子中是 perl) - 升级到最新的 sqlserver 驱动程序并在连接字符串中指定

TrustServerCertificate=yes
有效。

© www.soinside.com 2019 - 2024. All rights reserved.