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

SSMS连接SQL Server Express报18456 同配置Python可正常连接

问题根因

这是SSMS的内置解析逻辑问题,和服务端配置无关:

  • Python脚本可正常连接,已经证明服务端身份验证模式、账号密码、1433端口连通性全部正常
  • SSMS有个默认逻辑:只要你在用户名输入框里填了带\的内容,哪怕你手动选了「SQL Server 身份验证」,它也会强行把\前面的内容识别为域名,按Windows域账号的逻辑做认证,不会把你输入的完整带前缀的用户名传给SQL Server服务端做SQL认证校验,最终触发Error 18456 Severity 14 State 1的登录失败错误。你之前手动改连接地址为tcp格式没用,因为问题根本不在网络层。
解决方法

选任意一种操作即可:

方案1:加前缀绕过SSMS的自动解析

  1. 打开SSMS连接窗口,身份验证正常选「SQL Server 身份验证」
  2. 用户名不要直接填mydomain\myuser,改成输入.\mydomain\myuser
  3. 正常输入密码,点击连接即可

前缀的.\会明确告诉SSMS这是SQL实例内的认证账号,不要触发域账号自动解析逻辑,服务端就能收到完整的用户名做校验。

方案2:通过附加参数直接传账号信息

  1. 打开SSMS连接窗口,点击底部的「选项 >>」,切换到「附加连接参数」标签页
  2. 在参数框里填入以下内容,替换成你自己的密码:
UID=mydomain\myuser;
PWD=你对应的账号密码;
  1. 切回登录标签页,服务器名填myserver.example.de,1433,身份验证选「SQL Server 身份验证」,用户名输入框留空也不影响,直接点连接即可。

方案3:匹配账号类型选对认证模式

如果你的mydomain\myuser本身就是AD域账号,不是在SQL Server里手动创建的SQL认证账号,根本不需要选SQL Server身份验证:

  • 身份验证直接选「Windows 身份验证」
  • 如果当前系统登录的账号不是这个域账号,点用户名输入框旁的「其他账户」选项,手动输入mydomain\myuser和对应密码再连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:09:23