Python 使用SQLAlchemy和pymssql进行Windows身份验证

Python 使用SQLAlchemy和pymssql进行Windows身份验证,python,sql-server,sql-server-2012,sqlalchemy,pymssql,Python,Sql Server,Sql Server 2012,Sqlalchemy,Pymssql,我想使用pymssql创建到SQL Server数据库的可信连接。考虑到代码将被共享,我不希望用户输入他们的用户名或密码。我发现文档中关于如何实现这一点的信息相互矛盾 我想做的是 engine = create_engine('mssql+pymssql://<Server>/<Database>?trusted=True') engine=create\u engine('mssql+pymssql://?trusted=True')) 有些东西说用,有些说用。这两

我想使用pymssql创建到SQL Server数据库的可信连接。考虑到代码将被共享,我不希望用户输入他们的用户名或密码。我发现文档中关于如何实现这一点的信息相互矛盾

我想做的是

engine = create_engine('mssql+pymssql://<Server>/<Database>?trusted=True')
engine=create\u engine('mssql+pymssql://?trusted=True'))
有些东西说用,有些说用。这两种选择都不适合我。每次尝试使用引擎时,我都会收到一个错误消息,指出
trusted
trusted\u connection
是一个意外的关键字参数


我使用的是SQLAlchemy版本1.0.9和pymssql版本2.1.1

如果有其他人无意中碰到这个:
似乎不再可能在pymssql中使用“可信”或windows身份验证

我只是尝试了一下,发现在过去的几年里,有很多用户都很沮丧。 例如: .

编辑:
在为本地SQL Server Express启用TCP/IP后解决了此问题

我刚刚在Windows计算机上使用

  • Python 2.7.11、SQLAlchemy 1.0.11和pymssql 2.1.1,以及
  • Python 3.5.1、SQLAlchemy 1.0.14和pymssql 2.1.2(使用FreeTDS 0.95.83 DLL)
这对我来说很好:

从sqlalchemy导入创建引擎
conn_str=r'mssql+pymssql://(本地)\SQLEXPRESS/myDb'
引擎=创建引擎(连接)
连接=引擎。连接()
结果=连接。执行(“选择系统\用户作为我”)
row=result.fetchone()
打印(第['me'行])
而且,即使在该计算机上停止了SQL浏览器服务,该连接字符串仍然有效

conn_str=r'mssql+pymssql://localhost:52865/myDb'

因此,至少在Windows计算机上,只要省略用户名和密码,就可以通过Windows身份验证连接到SQL Server。

自编写这些注释以来,情况可能发生了变化,但当我刚刚测试它时,它对我有效。详细信息请参见我的答案。我已尝试遵循您的方法,但无法使其发挥作用。但是我没有使用SQLAlchemy。例如:conn=pymssql.connect(server='localhost',database='TestDB')我刚刚测试了
cnxn=pymssql.connect(server='localhost',port='52865',database='myDb')
,它在Python 3.5.1和pymssql2.1.2中对我起了作用。好的!现在,我可以使用Python 2.7了。我使用的是Sql Server Express,需要启用TCP/IP