无法将Azure SQL Database链接至Static Web App的问题排查
Azure Static Web App 链接 Azure SQL DB 时 /data-api 400 错误的排查方向
以下是可能导致该400错误的原因及排查要点:
连接字符串配置错误
- 核对连接字符串中的
Server值,确保是Azure SQL数据库的完整FQDN(格式为<你的服务器名>.database.windows.net),端口1433无需修改 - 验证
User ID和Password的正确性:SQL身份验证的用户名若为本地用户,需包含服务器前缀(如sqlserveradmin@your-server),避免拼写或大小写错误 - 确认
Initial Catalog设置为blog,与实际数据库名称完全一致
- 核对连接字符串中的
API路径不匹配
当前DAB配置中,REST接口的路径为/rest,GraphQL接口为/graphql,但你访问的是/data-api。需确认:- 是否混淆了SWA托管DAB的默认入口与自定义配置路径,可先尝试访问
/rest/Test(假设Test表已配置为实体)测试是否正常 - 若需使用
/data-api作为入口,需在runtime.host中添加对应的路径配置
- 是否混淆了SWA托管DAB的默认入口与自定义配置路径,可先尝试访问
SQL用户权限不足
即使防火墙规则允许访问,若连接用的SQL用户没有足够权限,也会导致请求失败:- 确保该用户拥有
blog数据库的db_datareader(读)、db_datawriter(写)权限 - 确认用户对
Test表有对应的访问权限(如SELECT、INSERT等)
- 确保该用户拥有
配置文件问题
- 检查
staticwebapp.database.config.json的JSON语法是否正确,比如是否有遗漏的逗号、不匹配的引号,可通过在线JSON校验工具验证 - 确认文件放置在
swa-db-connections目录的根路径下,SWA仅加载该目录下的配置文件,位置错误会导致配置不生效
- 检查
SWA与数据库链接同步异常
- 解除并重新链接数据库后,需确认SWA的环境变量已更新。建议使用托管连接字符串而非硬编码:在DAB配置中用
@env('AZURE_SQL_CONNECTION_STRING')引用SWA自动生成的环境变量,避免硬编码导致的配置不一致
- 解除并重新链接数据库后,需确认SWA的环境变量已更新。建议使用托管连接字符串而非硬编码:在DAB配置中用
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

