我正在尝试使用pyodbc从Linux机器连接到Windows SQL Server。
我确实有两个限制:
我按照Microsoft的说明设置了环境并使其正常工作(我可以导入pyodbc并使用已配置的贻贝驱动程序)。
我不熟悉Windows域身份验证,而其他方面则不熟悉,所以这里就是我的问题所在。
我的连接字符串:
DRIVER={ODBC Driver 17 for SQL Server};SERVER=myserver.mydomain.com;PORT=1433;DATABASE=MyDatabase;Domain=MyCompanyDomain;Instance=MyInstance;UID=myDomainUser;PWD=XXXXXXXX;Trusted_Connection=yes;Integrated_Security=SSPI
假定应该使用“ Trusted_Connection”来使用Windows域身份验证,而不是直接通过SQL Server进行身份验证。
我在运行 pyodbc.connect(connString) 时 遇到 的错误:
pyodbc.Error: ('HY000', '[HY000] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]SSPI Provider: No Kerberos credentials available (851968) (SQLDriverConnect)')
我从其他来源了解到,此代码应在Windows上运行,因为此代码将使用当前登录用户的凭据。
我的问题是如何使用Windows域凭据从Linux连接到Windows SQL Server实例。
我最终使用了pymssql库,该库基本上是FreeTDS驱动程序之上的pyodbc。它开箱即用。
奇怪如何发现这个库让我如此困难。