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

Node.js项目能否通过AAD托管身份成功连接SQL Server?

方案可行性说明

Tedious 原生支持 Azure Active Directory(AAD)身份认证,你使用的 azure-active-directory-msi-app-service 托管标识连接 Azure SQL 数据库的方案完全可行,不存在设计层面的问题。

报错排查项

你遇到的 Security token could not be authenticated or authorized 报错,已确认配置托管标识权限的前提下,可逐一核对以下配置细节:

  • 确认 SQL 数据库内已创建托管标识对应账号:需要在目标数据库中执行命令创建包含式用户并分配权限,示例命令如下:
CREATE USER [你的托管标识名称] FROM EXTERNAL PROVIDER;
-- 按需分配对应角色权限
ALTER ROLE db_datareader ADD MEMBER [你的托管标识名称];
ALTER ROLE db_datawriter ADD MEMBER [你的托管标识名称];
  • 确认托管标识和应用服务的关联配置正确:如果使用系统分配托管标识,检查应用服务「标识」页的系统分配开关状态为开启;如果使用用户分配托管标识,确认该标识已绑定到你的应用服务。
  • 确认 Tedious 版本满足要求:需使用 v14.0.0 及以上版本的 Tedious 库,低版本不支持 MSI 认证相关参数,可执行 npm list tedious 查看当前项目安装的版本。
  • 确认连接配置参数完整:除 authentication.type 设置为 azure-active-directory-msi-app-service 外,不要配置静态账号密码;如果使用用户分配托管标识,需要在 authentication.options 中补充 clientId 字段,值为对应托管标识的客户端ID。
  • 确认 Azure SQL 防火墙配置允许应用服务访问:可在 SQL 服务器网络配置页开启「允许 Azure 服务和资源访问此服务器」开关,或者将应用服务的所有出站IP手动添加到SQL防火墙白名单。
  • 确认云环境参数匹配:如果使用 Azure 中国区、美国政府区这类主权云环境,需要在连接配置中补充 azureCloudOptions 参数指定对应云环境,避免token请求端点错误导致认证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:03