【发布时间】:2015-06-03 16:03:24
【问题描述】:
用于支持 windows 身份验证的 pymssql 模块。现在看来不是。虽然在某些地方它仍然表明它应该工作。我一直无法找到这个问题的明确答案,也找不到解决方案。最相关的链接:
https://groups.google.com/forum/#!topic/pymssql/QDMLTGBNeU0
pymssql 1.0 支持它,因为它使用并依赖于 MS 提供的 DLL,它是 SQL Server 客户端堆栈的一部分。这 stack 负责处理所有的 NTLM 协商等。 这意味着,除其他外,它是一个仅限 Windows 的解决方案。
我可以模拟多种网络环境,所以我尝试了很多不同的设置。我正在尝试能够使用此脚本通过 Windows 身份验证连接到远程 MSSQL 服务器。这就是问题所在。
根据我的研究,包括上面的链接,有两种方法可以使用 Windows 身份验证和 pymssql 模块,应该可以工作。
第一种方法:使用当前用户凭据:
pymssql.connect(server='server')
# credentials come from active windows session
# some research shows that a "trusted=True" keyword should be provided.
第二种方法:使用给定的用户凭据:
pymssql.connect(server='server', user=r'domain\user', password='pass')
# credentials are given in code and somehow converted to a
# windows authentication in the background
# some research shows that a "trusted=True" keyword should be provided.
使用_mssql 模块也是如此。
注意事项:
- Python 版本:2.7.8
- 我正在使用的 pymssql 版本:2.1.1
- 用于支持 windows 身份验证的 pymssql 版本:1.x
- 我已经测试过(所有 64 位):
- Windows 7 专业版
- Windows 7 家庭高级版
- Windows 服务器 2012
- Windows 服务器 2012R2
关于该主题的其他问题:
pymssql: How to use windows authentication when running on a non-windows box
Unable to connect using pymssql with windows authentication
https://stackoverflow.com/questions/27692366/mssql-python-windows-authentication
【问题讨论】:
-
你能列出你正在使用的 windows 版本,以及它“曾经工作”的 pymssql 和 windows 版本
标签: python windows-authentication pymssql