Azure SQL .NET 管理技能
用 .NET 部署和管理 Azure SQL 资源。
明确区分管理面与数据面,并建议使用 DefaultAzureCredential、生产环境避免硬编码密码;但示例直接展示密码、存储密钥和连接字符串,未提供用户确认、最小权限、敏感数据流说明、回滚方案或删除/网络暴露操作的恢复指导,因此扣分。
文档覆盖认证、资源层级、CRUD、异常处理和部分长时间操作;但未见该技能专属的可执行测试、版本兼容验证或边界输入反馈,且若干示例的 SDK/API 正确性只能静态推断,故按静态上限保守评分。
名称、目标用户、管理面范围、非适用的数据面范围和触发词较清晰;但未明确 Azure 权限前提、区域/SKU限制、成本与生产环境边界,也没有中文使用说明或中国大陆网络可达性信息,因此扣分。
结构较清楚,包含安装、环境变量、认证、核心流程、参考文件、相关 SDK、版本和 MIT 许可;但缺少变更日志、维护责任与更新路径、常见故障排查、完整参数约束和已知限制,引用文件是否随技能安装可用也未进一步说明。
提供服务器、数据库、弹性池、防火墙、恢复、保留策略和审计等直接代码模板,覆盖核心管理任务;但示例未被该技能专属测试验证,部分操作可能需要补充权限、资源组获取、参数校验和安全改造,不能静态证明可直接运行,因此受静态上限限制。
技能包含具体类型、包名、版本、代码和错误处理示例,且仓库有通用 CI/测试材料;但提供的测试未覆盖该技能关键路径,也没有该技能专属 acceptance criteria、执行结果或多来源交叉验证,故证据覆盖有限。
- 不要将示例密码、存储访问密钥或连接字符串直接用于生产;应改用托管身份、密钥保管服务和安全的机密注入。
- 创建、删除、恢复、修改防火墙或批准私有终结点会产生外部 Azure 影响;执行前应确认订阅、资源组、目标资源、权限、成本和回滚方案。
- 静态审查未验证 Azure.ResourceManager.Sql v1.3.0/v1.4.0-beta.3 示例与当前 API 的编译或运行兼容性。
- 仓库 CI 与测试是通用上下文,不能证明该选定技能的关键代码路径已通过执行验证。
它能做什么 & 适用场景
该技能面向 Azure Resource Manager 管理平面操作,使用 Azure.ResourceManager.Sql 在 .NET 中创建和管理 SQL 服务器、数据库、弹性池、防火墙规则及故障转移组。它覆盖 Azure 身份验证、资源层级导航、异步创建或更新、资源列表和常见错误处理。技能明确不负责执行 SQL 查询或存储过程。适合需要把 Azure SQL 基础设施管理自动化到 .NET 应用或脚本中的开发者。
指导安装 Azure.ResourceManager.Sql 和 Azure.Identity,使用 DefaultAzureCredential 创建 ArmClient,并通过订阅、资源组和 SQL 服务器资源层级执行管理操作。它提供创建 SQL 服务器、数据库和弹性池的 C# 示例,演示将数据库加入弹性池、配置 Azure 服务及指定 IP 范围的防火墙规则,以及列出服务器、数据库和弹性池。它还说明如何构造连接字符串、处理 RequestFailedException,并区分管理平面 SDK 与数据平面 SDK。
- 负责 .NET 基础设施代码的开发者,需要创建 Azure SQL 服务器和数据库。
- 管理多个数据库的平台工程师,需要通过弹性池控制容量和成本。
- 需要自动配置数据库访问范围的团队,需要创建 Azure SQL 防火墙规则。
- 构建灾备或多区域管理流程的开发者,需要管理 SQL 故障转移组。
- 需要在部署前后检查 Azure SQL 资源的开发者,需要列出服务器、数据库和弹性池。
优缺点一览
- 范围清晰,专注 Azure SQL 管理平面而非混淆数据平面操作。
- 提供从身份验证到资源创建、网络规则、列表和错误处理的完整基础流程。
- 包含幂等的 CreateOrUpdateAsync、WaitUntil.Completed 和资源层级导航等实用模式。
- README 记录该技能有 14 个测试场景。
- 仅覆盖 .NET 和 Azure SQL 管理操作,不执行 SQL 查询或存储过程。
- 示例包含明文管理员密码和连接字符串占位符,生产环境仍需自行采用安全凭据管理。
- 源材料没有给出该技能的独立版本维护记录或具体测试结果。
- README 中整体集合处于持续开发状态,技能内容可能继续更新。
如何安装
运行 npx skills add microsoft/skills,在安装向导中选择 azure-resource-manager-sql-dotnet。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 的 .github/skills/;该仓库未提供此单个技能的独立安装命令。项目中还需执行 dotnet add package Azure.ResourceManager.Sql 和 dotnet add package Azure.Identity。
如何使用
在支持 Agent Skills 的编码代理中,使用包含触发词的请求,例如:Use the azure-resource-manager-sql-dotnet skill to provision an Azure SQL server, database, and firewall rule in C#. 随后按技能示例设置 AZURE_SUBSCRIPTION_ID,使用 DefaultAzureCredential,并通过 CreateOrUpdateAsync 等 ARM 方法管理资源。执行查询、存储过程或数据库连接操作时,应改用 Microsoft.Data.SqlClient。
对比同类
与 Microsoft.Data.SqlClient 的边界最明确:本技能用于 Azure SQL 管理平面资源,Microsoft.Data.SqlClient 用于执行查询、存储过程和管理连接。Microsoft.EntityFrameworkCore.SqlServer 则是 SQL Server ORM;本技能不提供 ORM 功能。