Bat*_*man 4 python sql-server sqlalchemy pymssql sql-server-2012
我想使用 pymssql 创建到 SQL Server 数据库的可信连接。鉴于该代码将被共享,我不希望用户输入他们的用户名或密码。我发现文档中关于如何实现这一点的信息相互矛盾。
我想要做的是类似的事情
engine = create_engine('mssql+pymssql://<Server>/<Database>?trusted=True')
Run Code Online (Sandbox Code Playgroud)
有些人说使用trust_connection=yes,其他人说使用trust=True。这些选项都不适合我。每次我尝试使用引擎时,我都会收到一条错误消息,指出trustedortrusted_connection是一个意外的关键字参数。
我使用的是 SQLAlchemy 1.0.9 版和 pymssql 2.1.1 版。
我刚刚在 Windows 机器上测试了这个
它对我来说很好用:
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'])
Run Code Online (Sandbox Code Playgroud)
而且,即使 SQL Browser 服务在该机器上停止,这个连接字符串也能工作
conn_str = r'mssql+pymssql://localhost:52865/myDb'
Run Code Online (Sandbox Code Playgroud)
因此,至少在 Windows 机器上,简单地省略用户名和密码将允许通过 Windows 身份验证连接到 SQL Server。
万一其他人偶然发现这个问题:
似乎不再可能将“受信任”或 Windows 身份验证与 pymssql 一起使用。
我刚刚尝试过这一点,发现了一堆过去几年里用户感到沮丧的帖子。例如: pymssql windows 身份验证。
编辑:为本地 SQL Server Express 启用 TCP/IP 后解决
| 归档时间: |
|
| 查看次数: |
10820 次 |
| 最近记录: |