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

PowerShell Core下dbaTools使用Azure AD账户连接MS SQL实例失败问题

问题原因及解决方案

核心疑问解答

PowerShell Core 完全支持使用 Windows 身份验证连接 MS SQL 实例,该报错是 .NET 运行时底层的 SQL 客户端库默认配置差异导致,并非功能不支持。

报错根因

  • PowerShell 5.1 基于 .NET Framework 运行,内置的 System.Data.SqlClient 库默认会自动传递当前登录的 Windows 域凭据(包括已关联 Azure AD 的混合域账户)进行集成认证。
  • PowerShell Core 7.x 基于 .NET Core/.NET 运行,使用的是新一代 Microsoft.Data.SqlClient 库,该库针对 Azure AD 关联的域账户,默认不会主动传递当前 Windows 身份凭据,因此请求会以匿名身份发送,触发 NT AUTHORITY\ANONYMOUS LOGON 登录失败报错。

可行解决方法

方法1:调用命令时指定认证类型

执行 Connect-DbaInstance 时额外添加 -Authentication ActiveDirectoryIntegrated 参数即可,命令示例:

Connect-DbaInstance -SqlInstance <servername>\<instancename> -Authentication ActiveDirectoryIntegrated

该参数会强制 SQL 客户端使用当前 Azure AD 关联的 Windows 账户凭据完成集成认证,和 SSMS、PowerShell 5.1 的默认行为一致。

方法2:配置 dbatools 默认认证规则

如果需要频繁执行连接操作,可直接设置 dbatools 全局默认认证类型,无需每次调用命令时加参数:

Set-DbatoolsConfig -FullName sql.connection.authentication -Value 'ActiveDirectoryIntegrated' -PassThru | Register-DbatoolsConfig

配置完成后重启 PowerShell Core 会话即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:27:04