我正在尝试使用 pyodbc 从 linux 机器连接到 windows SQL Server。
我确实有几个限制:
- 需要用windows域账号登录
- 需要使用python3
- 需要从Linux到Windows
- 需要连接到特定实例
我按照微软的描述设置了环境并让它工作(我可以导入 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 服务器进行身份验证。
运行 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 实例。
原文由 Esser420 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最终使用了 pymssql 库,它基本上是 FreeTDS 驱动程序之上的 pyodbc。它开箱即用。
奇怪我怎么这么难发现这个图书馆..