如何为 Azure SQL Database 创建适配 Azure DevOps 部署的发布配置文件
正确创建Azure SQL Database可用发布配置文件的操作指南
一、Visual Studio 2019 端创建规范
- 打开SQL Server数据工具(SSDT)项目,右键项目节点选择发布
- 目标数据库连接选择对应Azure SQL Database实例,认证方式选择
SQL Server 认证或Azure Active Directory - 通用且具有MFA支持,不要使用Windows认证(Azure SQL不支持该认证方式) - 点击高级按钮,按部署需求调整核心配置:
- 按需选择是否勾选「如果可能发生数据丢失则阻止增量部署」,生产环境建议默认勾选
- 勾选「部署数据库属性」
- 勾选「忽略ANSI填充」「忽略引号标识符」,适配Azure SQL与本地SQL Server的默认配置差异
- 目标平台选择匹配的Azure SQL版本,通常选
Microsoft Azure SQL Database v12,禁止选择本地SQL Server版本
- 配置完成后点击「另存为配置文件」,保存为
.publish.xml后缀的文件,存入代码仓库根目录跟随代码统一提交
二、发布配置文件必校验配置项
- 确认
TargetConnectionString节点的连接字符串无本地环境相关配置,标准格式参考:Server=tcp:{SQL实例名}.database.windows.net,1433;Initial Catalog={目标库名};Persist Security Info=False;User ID={管理员账号};Password={密码占位符};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30; - 确认
TargetDatabaseName节点值与待部署的Azure SQL库名完全一致 - 确认
<TargetPlatform>Microsoft Azure SQL Database V12</TargetPlatform>节点配置正确,未指向本地SQL Server版本
三、Azure DevOps 流水线适配配置
- 流水线使用
SqlAzureDacpacDeployment@1任务执行dacpac部署,指定publishProfilePath参数为仓库中.publish.xml文件的相对路径 - 不要在配置文件中硬编码密码,可通过流水线变量替换配置文件中的密码占位符,或直接在部署任务中指定
sqlPassword参数覆盖配置文件中的密码配置 - 确认流水线运行环境的IP已加入Azure SQL防火墙白名单:微软托管代理需开启Azure SQL侧「允许Azure服务和资源访问此服务器」选项,自托管代理需将代理出口IP添加至白名单
四、常见部署失败排查
- 报错「目标平台不匹配」:重新校验配置文件中的TargetPlatform配置
- 报错「无法连接到目标服务器/连接超时」:排查连接字符串正确性、防火墙规则配置
- 报错「检测到可能的数据丢失,部署已终止」:按需调整高级部署选项中「阻止数据丢失」相关配置
内容的提问来源于stack exchange,提问作者Maria Shahid
相关产品推荐
相关产品推荐

