启用Azure AD仅认证后,无法通过Azure AD用户连接Azure SQL数据库?
解决Azure SQL AD仅认证下SSMS连接错误10060的方案
检查SSMS版本兼容性
必须使用SSMS 18.6及以上版本,旧版本对Azure AD仅认证模式的支持存在缺陷,会导致身份验证流程异常,触发网络超时类错误。核对SSMS连接配置细节
连接时务必选对认证方式:- 在SSMS连接窗口中,认证类型选择
Azure Active Directory - 通用且具有MFA支持(若用户未启用MFA,可选择Azure Active Directory - 密码) - 确保服务器名称完全匹配
xxxxxx.database.windows.net,无拼写错误 - 按需勾选「记住密码」,避免凭证传递过程中出现异常
- 在SSMS连接窗口中,认证类型选择
排查本地网络与防火墙
错误10060属于TCP连接超时,需确认:- 本地网络未屏蔽Azure SQL的1433出站端口,可通过命令
telnet xxxxxx.database.windows.net 1433测试连通性,若失败则检查本地防火墙、企业网关规则 - 若使用VPN或代理,需确保代理允许Azure SQL流量通过,且未拦截AD认证所需的HTTPS请求
- 本地网络未屏蔽Azure SQL的1433出站端口,可通过命令
检查Azure SQL防火墙规则
门户查询编辑器使用Azure服务IP,与本地客户端IP不同:- 确认Azure SQL服务器的防火墙规则已添加当前本地客户端的IP地址
- 即便开启了「允许Azure服务和资源访问此服务器」,未添加本地IP仍会导致连接失败
验证AD用户的权限配置
- 除了数据库中的EXTERNAL_USER,需确认服务器级别存在对应登录项,可通过服务主体执行以下查询检查:
若不存在,通过服务主体创建登录:SELECT name, type_desc FROM sys.server_principals WHERE name = '你的AD用户名'CREATE LOGIN [你的AD用户名] FROM EXTERNAL PROVIDER; - 确认AD账号状态正常,无禁用、MFA配置异常等情况
- 除了数据库中的EXTERNAL_USER,需确认服务器级别存在对应登录项,可通过服务主体执行以下查询检查:
内容的提问来源于stack exchange,提问作者user20584398
相关产品推荐
相关产品推荐

