首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pymssql窗口身份验证

pymssql窗口身份验证
EN

Stack Overflow用户
提问于 2015-03-30 15:02:11
回答 5查看 32.1K关注 0票数 18

用于支持windows身份验证的pymssql模块。现在看来并非如此。虽然在一些地方,它仍然表明它应该工作。我一直未能找到这个问题的确切答案,也无法找到解决办法。最相关的联系:

https://groups.google.com/forum/#!topic/pymssql/QDMLTGBNeU0

Pymssql1.0支持它,因为它使用并依赖MS提供的DLL,而DLL是Server客户端堆栈的一部分。这个堆栈负责处理所有NTLM谈判等等。这意味着,除其他外,它是一个Windows专用的解决方案。

我可以模拟各种网络环境,所以我尝试了许多不同的设置。我试图使用此脚本使用windows身份验证连接到远程MSSQL服务器。这就是问题所在。

根据我的研究,包括上面的链接,有两种方法可以通过pymssql模块使用windows身份验证来工作。

第一个方法:使用当前用户凭据的

代码语言:javascript
复制
pymssql.connect(server='server') 
# credentials come from active windows session
# some research shows that a "trusted=True" keyword should be provided.

第二种方法:使用给定用户凭据的

代码语言:javascript
复制
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 server 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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-09-21 11:49:58

所以,我想我应该用我最终用来解决这个问题的方法回答我自己的问题(已经过了几个月了)。

简短的回答:我用了别的东西。

更长的答案:为了测试windows身份验证(除了当前登录的windows用户之外,这是有效的),我开始使用微软的SQLCMD工具,并结合PsExec

PsExec I使用elevated (-h)load profile (-e)标志执行。使用完整的用户名DOMAIN\USERNAME

使用trusted connection -E标志执行的SQLCMD。

剩下的就看你了。

票数 1
EN

Stack Overflow用户

发布于 2015-12-17 21:04:43

我能够使用python 2.7.11 64位、pymssql 2.1.1 win 64、windows 10、sqlserver 2012以及windows身份验证来解决这个问题:

代码语言:javascript
复制
conn = pymssql.connect(server = 'EDDESKTOP', database = 'baseballData')

并在MSSQLSERVER配置管理器>MSSQLSERVER网络配置->协议中为MSSQLSERVER->启用tcp/ip启用TCP/IP连接。

票数 12
EN

Stack Overflow用户

发布于 2015-03-30 15:44:45

我最近也遇到了同样的挑战。我最初还使用了Python2.7和windows身份验证。我能够连接的唯一方法是使用IronPython并导入clr模块。我不知道它为什么会起作用,我希望有人能给我解释一下这个问题。不同之处在于我的服务器是本地的,里面的数据库是用‘实体框架-代码优先’形成的。下面是最后将我连接到服务器的代码。

代码语言:javascript
复制
import clr
clr.AddReference('System.Data')
from System.Data.SqlClient import *

Conn_string = 'data source=Server_Name; initial catalog=Database_Name; trusted_connection=True'
ScheduleConn = SqlConnection(Conn_string)
ScheduleConn.Open()

如果这不能解决你的问题,我希望它能让你更接近你的解决方案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29349607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档