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

pyodbc使用可信连接登录SQL Server失败,SSMS Windows认证可正常登录

故障原因与解决方案

核心原因

该报错本质是运行Python脚本的Windows身份上下文与SSMS登录所用的身份不一致,具体原因和对应解决方法如下:

  • 身份不匹配:SSMS启动时使用的是有权限访问SQL Server和目标数据库的Windows账户,而运行Python脚本的IDE/终端是用MicrosoftAccount前缀的微软账户启动的,该账户未在SQL Server中配置登录权限,也没有目标数据库的访问权限,所以同时触发18456(登录失败)和4060(数据库打开失败)报错。
  • 数据库名解析问题:目标数据库名包含空格和特殊字符,部分ODBC驱动版本会出现解析异常。

解决步骤

  1. 优先验证身份上下文:右键点击所用的终端/IDE,选择「以其他用户身份运行」,使用SSMS登录时的同一Windows账户启动,再执行脚本验证是否可以正常连接。
  2. 强制指定认证账户:如果无法切换启动身份,可在连接字符串中补充对应Windows账户的账号密码,修改后的连接串参考:
cnxn_str = (
    r'DRIVER=ODBC Driver 17 for SQL Server;'
    r'SERVER=.\SQLEXPRESS02;'
    r'Trusted_Connection=yes;'
    r'UID=你的Windows账户名;'
    r'PWD=你的Windows账户密码;'
    r'DATABASE=[Scenario2025Max_Release 5.0_0523586A6813B825D031545D6E25A815];'
)
  1. 检查SQL Server权限配置:在SSMS的「安全性-登录名」节点下,确认MicrosoftAccount前缀的对应微软账户是否已添加,且已授予目标数据库的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:27:02