首页 > 解决方案 > pyodbc 操作错误 08001 ssl 安全错误

问题描述

我正在尝试使用 pyodbc 从我的笔记本电脑(在 Windows 10 上)通过以下 python 脚本连接到我在 MS SQL Server 2016 上的数据库,并计划将代码部署在 Linux RHEL 6.4 服务器中。

conn=pyodbc.connect('Driver={SQL Server};'
                'Server=DB_Instance;'
                'Database=DB_Name;'
                'UID=user_name;'
                'PWD=password;'
                'Trusted_Connection=no;');

在我的笔记本电脑上,SQL Server(版本:10.00.17763.01)和 SQL Server Native Client 11.0(版本:2011.110.7493.04)已经可用。

从我的笔记本电脑执行 python 脚本时,我收到以下错误消息。

pyodbc.operationalError: ('08001', '[08001] [Microsoft] [ODBC SQL Server Driver][DBNETLIB]SSL 安全错误 (18) (SQLDriverConnect); [08001] [Microsoft] [ODBC SQL Server Driver][DBNETLIB] ConnectionOpen (SECDoClientHandshake()). (772)')

根据组织标准,在网络中安装了 SQL Server 的 Windows 服务器上禁用了 TLS 1.0。由于我是通过 python 脚本访问数据库,我们暂时无法启用 TLS 1.0。我正在寻找一个方向。任何帮助是极大的赞赏!!

标签: pythonsql-serverodbcpyodbc

解决方案


戈德汤普森在评论中指出古纳的方向是正确的:

您可以尝试使用 ODBC Driver 17 for SQL Server 看看是否适合您吗?

——戈德·汤普森

Guna 说这很有效:

我面临着不同的错误。在服务器名称之外添加端口号时,问题得到了解决。ODBC 驱动程序名称也需要更新。conn=pyodbc.connect('Driver={ODBC Driver 17 for SQL Server};' 'Server=DB_Instance,port;' 'Database=DB_Name;' 'UID=user_name;' 'PWD=password;' 'Trusted_Connection=no; ');

– 古纳

将此作为社区 Wiki 发布,以便任何搜索者可以快速看到它已被回答。


推荐阅读