使用SQLAlchemy和pymssq的Windows身份验证

2024-04-25 05:19:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想做的是

engine = create_engine('mssql+pymssql://<Server>/<Database>?trusted=True')

有人说用 trusted_connection=yes,也有人说用trusted=True。这两种选择都不适合我。每次尝试使用引擎时,我都会收到一个错误,说trustedtrusted_connection是一个意外的关键字参数。

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


Tags: 代码用户文档版本信息数据库true密码
2条回答

如果有人无意中发现这个:
似乎不再可能对pymssql使用“可信”或windows auth。

我只是尝试了一下,发现了一堆过去几年用户沮丧的线程。 例如: pymssql windows authentication

编辑: 为本地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)

对我来说很好:

from sqlalchemy import create_engine
conn_str = r'mssql+pymssql://(local)\SQLEXPRESS/myDb'
engine = create_engine(conn_str)
connection = engine.connect()
result = connection.execute("SELECT SYSTEM_USER AS me")
row = result.fetchone()
print(row['me'])

而且,即使在该计算机上停止了SQL浏览器服务,此连接字符串也可以工作

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

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

相关问题 更多 >