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

解决Oracle SQL Developer连接需MFA的Azure Database登录失败问题

解决Oracle SQL Developer连接Azure SQL Database的登录失败问题

核心原因

Oracle SQL Developer默认不支持Azure Active Directory(AAD)的Universal with MFA认证方式,而SSMS是原生适配该认证逻辑的,这是两者连接结果不同的关键。以下是具体解决步骤:

解决方案

1. 先验证基础连接(排除非MFA因素)

先创建一个无MFA的AAD标准账号,给目标数据库分配登录权限,用这个账号测试SQL Developer连接:

  • 主机地址填myserver.net,SSL模式设为require(Azure SQL强制要求加密连接,request不足以满足要求)
  • 用户名直接填AAD账号名(比如myusername,不要加@myserver.net后缀,该格式仅适用于SQL本地账号)
  • 若此连接成功,说明网络、防火墙、驱动基础配置无问题,问题集中在MFA认证适配。

2. 配置SQL Developer支持AAD MFA认证

需通过Azure AD令牌认证来绕过直接MFA登录限制:

  • 安装并登录Azure CLI,执行命令获取访问令牌:
    az account get-access-token --resource https://database.windows.net/
    
    复制返回结果中的accessToken值。
  • 在SQL Developer中新建连接:
    • 连接类型选择SQL Server(确保已安装最新版Microsoft JDBC Driver for SQL Server)
    • 主机名myserver.net,端口1433,填写目标数据库名称
    • 认证方式选OAuth 2.0,令牌类型指定Azure AD,粘贴刚才获取的令牌到OAuth Token字段
    • 勾选SSL,SSL模式设为require,测试连接。

3. 检查并更新JDBC驱动

旧版Microsoft JDBC Driver for SQL Server不支持AAD OAuth认证,需确保使用最新版本:

  • 打开SQL Developer,路径为工具 -> 首选项 -> 数据库 -> JDBC驱动,找到SQL Server驱动条目,更新到最新版本。

4. 长期使用的替代方案

如果需要频繁连接,每次手动获取令牌效率低,可以配置Azure AD服务主体(无交互式认证):

  • 在Azure AD中注册服务主体,分配目标数据库的访问权限
  • 在SQL Developer中用服务主体的客户端ID、客户端密钥、租户ID配置OAuth认证,实现无MFA的自动化连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:10:28