【发布时间】:2022-12-28 17:13:28
【问题描述】:
我有一个使用 pyodbc 的 python 脚本,它连接到一个运行着 sql server 的远程服务器。我有一个使用 sqlalchemy 编写的函数包,我可以在我的一台计算机上使用它。我连接了这个字符串:
driver = 'SQL+Server+Native+Client+11.0'
engine_string = prefix + '://' + username + ':' + password + '@' + server + '/' + database + '?driver=' + driver
在另一台计算机上,我无法安装据我所知已弃用的本机客户端 11.0。我尝试将值切换为
driver = 'ODBC+Driver+18+for+SQL+Server'
我收到那个版本的错误
[ODBC Driver 18 for SQL Server]SSL Provider: The certificate chain was issued by an authority that is not trusted.
然后我尝试了与 Windows 实用程序的通用 odbc 连接并得到了同样的错误。当我选中“信任服务器证书”时,我能够使 odbc 管理器连接正常工作
从长远来看,这可能不太好,但是有没有办法将该属性添加到我上面的第一个字符串中?我尝试了几种变体,但没有任何效果。
我能够与以下内容建立工作联系:
cnxn = pyodbc.connect(
driver = '{ODBC Driver 18 for SQL Server}',
server = server,
database = database,
uid = username,
pwd = password,
encrypt='no',
trust_server_certificate='yes')
但该连接不适用于我想使用的包。 谢谢!
【问题讨论】:
-
您实际使用的是哪个驱动程序
-
AFAIK,仍然支持“SQL Server 的 ODBC 驱动程序 17”,所以也许您可以使用它。
-
在我的电脑上,我有一个错误,我有驱动程序 v18。我在那台机器上安装了 v17 和 18,并且都试过了。在第一台机器上它有之前安装的本地客户端驱动程序(不知道什么时候安装的)
标签: python sql-server odbc pyodbc