You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非管理员Windows用户从Python连接SQL Server报错登录失败,如何解决?

问题原因与解决方法

1. 连接字符串参数错误(对应报错中的Invalid connection string attribute)

SQL Server ODBC驱动不支持单独书写port = 1433的参数格式,指定端口需要直接拼接在Server参数后,使用逗号分隔,你可以直接删掉连接字符串里的port = 1433;行,若确实需要指定端口则将Server行修改为Server=XXXXXXXX,1433;即可消除该类报错。

2. 数据库登录失败(对应报错中的Cannot open database "XXX" requested by login. Login failed)

你使用的是Trusted_Connection=yes即Windows身份验证,和SSMS的登录逻辑一致,请优先排查以下两点:

  • 连接字符串中Database参数填写的XXX是否为真实存在的数据库名称,注意部分SQL Server实例会开启大小写校验,需要和实际库名完全一致
  • 你当前登录Windows的账号是否被分配了该数据库的访问权限:可先通过SSMS登录后手动展开对应数据库,确认能否正常访问库内的表数据,如果SSMS也无法访问,需要联系数据库管理员为你的Windows账号开通对应库的访问权限。

修正后的代码示例
import pyodbc

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=XXXXXXXX,1433;' # 端口直接跟在服务器地址后,用逗号分隔
                      'Database=XXX;' # 替换为你真实存在且有权限访问的数据库名称
                      'Trusted_Connection=yes;')

可选优化:如果修正后仍存在驱动兼容问题,可以将连接字符串里的Driver参数替换为本地已安装的更高版本ODBC驱动,例如Driver={ODBC Driver 17 for SQL Server},版本号和你本地安装的ODBC驱动版本保持一致即可。

内容的提问来源于stack exchange,提问作者Lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:24:02