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

跨域使用SSMS连接SQL Server报错18452:登录来自不受信任域

错误触发原因

你看到的Login failed. The login is from an untrusted domain and cannot be used with integrated authentication. (Microsoft SQL Server, Error: 18452)报错,核心原因是当前使用Windows集成身份验证发起连接时,承载SQL Server实例的域A和客户端所在的域B之间不存在可信认证关系,域A无法校验域B传入的Windows登录凭证的合法性,直接拒绝了连接请求。

可落地解决方案

按实施成本和适用场景从高到低排序,可选择以下任意一种方案解决:

  • 方案1:配置域间双向信任(适合企业内部长期稳定使用场景)
    联系两个域的运维管理员,在域A和域B之间建立外部信任或林级双向信任,信任关系生效后,域B的Windows账号将被域A认可。后续只需在域A的SQL Server实例中为需要访问的域B账号/域安全组配置对应的登录权限、数据库操作权限,即可直接用Windows集成身份验证正常连接,不需要调整客户端配置。
  • 方案2:切换为SQL Server身份验证(最快生效方案,无需调整域配置)
    1. 登录域A中SQL Server实例所在的服务器,使用本地管理员或SQL sysadmin权限账号打开SSMS,在实例的「安全性-登录名」节点创建SQL Server认证类型的登录账号,设置符合复杂度要求的强密码,并为账号分配对应业务需要的服务器、数据库权限。
    2. 回到域B的SSMS客户端,连接实例时将身份验证模式从Windows 身份验证切换为SQL Server 身份验证,输入刚创建的账号密码即可完成连接,不受域信任关系影响。
  • 方案3:客户端手动添加域A访问凭证(适合临时访问场景,无需调整域配置或SQL认证模式)
    1. 在域B的客户端机器上打开「控制面板-凭据管理器-Windows凭据」,选择「添加Windows凭据」:
      • 网络地址栏填写域A中SQL Server实例的访问地址,默认实例直接填服务器IP/主机名,命名实例需填写主机名\实例名,如果改了非默认端口还要补充端口信息
      • 用户名栏填写域A中具备SQL Server登录权限的域账号,格式为域A的NetBIOS名称\账号名
      • 密码栏填写对应域账号的登录密码,保存凭据
    2. 凭据保存完成后,重新打开SSMS使用Windows集成身份验证连接,系统会自动调用已存储的域A凭证完成认证,不会再触发不信任域的报错。
注意事项
  • 不建议为了临时连通直接修改SQL Server的认证安全配置、放宽域校验规则,会引入不必要的安全风险。
  • 如果使用本地存储凭据的方案,需要在域A账号密码更新后同步修改凭据管理器中存储的密码,避免密码过期导致连接失败。
  • 配置域信任后如果仍出现同类报错,优先检查SQL Server服务对应的SPN(服务主体名称)是否配置正确,Kerberos认证失败也会抛出相同的错误码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 06:39:32