pyodbc操作错误08001 ssl安全错误

Gun*_*una 7 python sql-server odbc pyodbc

我正在尝试使用 pyodbc 通过以下 python 脚本从我的笔记本电脑(在 Windows 10 上)连接到 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;');
Run Code Online (Sandbox Code Playgroud)

在我的笔记本电脑上,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 驱动程序][DBNETLIB]SSL 安全错误 (18) (SQLDriverConnect); [08001] [Microsoft] [ODBC SQL Server 驱动程序][DBNETLIB] ConnectionOpen (SECDoClientHandshake())。(772)')

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

Abr*_*ham 5

戈德·汤普森在评论中为古纳指明了正确的方向:

\n
\n

您可以尝试使用 SQL Server 的 ODBC 驱动程序 17 并看看它是否适合您?

\n

\xe2\x80\x93 戈德·汤普森

\n
\n

古纳说这有效:

\n
\n

我面临着不同的错误。除了服务器名称之外,添加端口号后,问题得到解决。ODBC 驱动程序名称也需要更新。conn=pyodbc.connect('驱动程序={用于 SQL Server 的 ODBC 驱动程序 17};' '服务器=DB_Instance,端口;' '数据库=DB_Name;' 'UID=用户名;' 'PWD=密码;' 'Trusted_Connection=no; ');

\n

\xe2\x80\x93 古纳

\n
\n

将其发布为社区 Wiki,以便任何搜索者都可以快速看到它已得到解答。

\n