用途:在本地 Azure SQL Database 容器(Private Preview,EngineEdition=5)之上,用 Microsoft 第一方开源引擎 Data API Builder(DAB)生成无代码 REST + GraphQL API。DAB 通过标准 TDS 和普通连接串访问,无需变更跟踪等特殊引擎特性。
主要能力:将表声明为 dab-config.json 中的实体后,DAB 自动提供 REST(/api/<Entity>,支持 OData 风格 $filter、$select、$orderby、$first、$after)与 GraphQL(/graphql,含查询、变更和关系导航)。还提供 OpenAPI/Swagger(/api/openapi、/swagger,仅 Development 模式)与健康检查 /health。1.7+ 版本默认在同端口提供内置 MCP 端点 /mcp,它是 DAB 的 API 接口,不是独立的 SQL MCP 服务器。REST、GraphQL、MCP 共用实体权限。
使用方式:先按 azuresql-db-container 启动容器并在 master 连接上执行 CREATE DATABASE appdb;安装 DAB:dotnet tool install --global Microsoft.DataApiBuilder(需 .NET 8),或用容器镜像 mcr.microsoft.com/azure-databases/data-api-builder:latest。通过 @env('SQL_CONNECTION_STRING') 传入连接串(含 TrustServerCertificate=true),执行 dab init --database-type mssql --connection-string "@env('SQL_CONNECTION_STRING')" --host-mode Development,再用 dab add Book --source dbo.Books --source.type table --permissions "anonymous:*" 添加实体,最后 ASPNETCORE_URLS=http://127.0.0.1:5000 dab start 启动。
限制:引擎不自动创建数据库;不可用 USE 切换库;容器为自签名证书必须 TrustServerCertificate=true;非 x64 主机需加 --platform linux/amd64;镜像仓库需先 docker login(凭据可能轮换);anonymous:* 仅限本地回环演示,共享服务须用令牌验证或认证网关并限定权限;不要把连接串或 SA 密码硬编码进 dab-config.json;不要把 MCP 端点描述为独立 MSSQL MCP 服务器。验证需同时确认正向后端返回与清理无残留。