Context Hub 中的 Azure SQL Management SDK for Python 实战:逻辑服务器、数据库与防火墙规则的 ARM 管控指南
【免费下载链接】context-hub项目地址https://gitcode.com/gh_mirrors/co/context-hub点击查看免费下载本篇技术指南基于 Context Hub 仓库中维护的 Azure SQL 管理 SDKPython文档系统讲解如何使用azure-mgmt-sql完成 Azure Resource Manager 控制面control-plane操作创建与更新逻辑服务器logical server、数据库、防火墙规则、故障转移组等资源。读完本篇你将掌握该 SDK 的安装与版本固定方式、DefaultAzureCredential认证流程、SqlManagementClient的客户端构建与操作组调用模式以及长时操作begin_*的等待方式并能避开管理面与数据面混用、忘记.result()、RBAC 权限缺失等高频坑。一、Golden Rule控制面与数据面的边界azure-mgmt-sql是 Azure SQL 的管理面ARM control-planeSDK用于创建逻辑服务器、数据库、防火墙规则、故障转移组等 Azure SQL 资源。它的边界非常清晰不要用它打开 SQL 连接或对数据库执行查询——那是数据面data-plane工作应使用pyodbc或基于 SQL Server 驱动之上的 SQLAlchemy 完成。标准调用模式是四步使用azure-identity完成认证构造SqlManagementClient调用操作组operation group如servers、databases、firewall_rules对任何begin_*长时操作调用.result()等待完成。这套“管理面负责供给、数据面负责查询”的边界同样体现在同仓库维护的其他文档中JavaScript 版的 arm-sql 文档 与 SQL 虚拟机管理 SDK 的 mgmt-sqlvirtualmachine 文档 均明确强调管理包不执行 SQL 语句、不建立 TDS 连接。二、安装与版本固定管理包应固定版本并同时安装azure-identity以支持 Microsoft Entra IDAzure AD认证python -m pip install azure-mgmt-sql3.0.1 azure-identity常用替代安装方式uv add azure-mgmt-sql3.0.1 azure-identity poetry add azure-mgmt-sql3.0.1 azure-identity如果在 CI 中使用服务主体service principal认证通常还需要设置以下环境变量export AZURE_SUBSCRIPTION_IDsubscription-id export AZURE_TENANT_IDtenant-id export AZURE_CLIENT_IDclient-id export AZURE_CLIENT_SECRETclient-secret本地开发时Microsoft 建议先用 Azure 开发者工具登录再由DefaultAzureCredential复用登录态az login三、认证与客户端构建SqlManagementClient是一个 Azure 管理面客户端需要三样东西一个 Azure 凭据通常是DefaultAzureCredential()一个订阅 IDsubscription_id目标订阅或资源组上的 ARM 权限RBAC。基础构建方式import os from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient subscription_id os.environ[AZURE_SUBSCRIPTION_ID] credential DefaultAzureCredential() client SqlManagementClient( credentialcredential, subscription_idsubscription_id, )实用注意事项每个进程复用同一个 credential 和 client不要为每次调用重新创建DefaultAzureCredential是同时适配本地与 Azure 环境运行的最快路径本地登录成功本身不够身份还需要具备管理目标 SQL 资源的权限。主权云Sovereign clouds如果不使用 Azure 公有云需要同时对齐凭据 authority 与管理端点主权云环境通常需要为凭据指定非默认的authority并为SqlManagementClient指定非默认的base_url。四、核心用法4.1 列出资源组中的逻辑服务器from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient credential DefaultAzureCredential() client SqlManagementClient(credential, subscription_id00000000-0000-0000-0000-000000000000) for server in client.servers.list_by_resource_group(rg-app-prod): print(server.name, server.location, server.fully_qualified_domain_name)4.2 创建或更新逻辑服务器服务器创建与更新属于长时操作必须使用begin_方法并等待轮询结果import os from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient from azure.mgmt.sql.models import Server credential DefaultAzureCredential() client SqlManagementClient(credential, subscription_idos.environ[AZURE_SUBSCRIPTION_ID]) poller client.servers.begin_create_or_update( resource_group_namerg-app-prod, server_namemy-sql-server, parametersServer( locationeastus, administrator_loginsqladminuser, administrator_login_passwordos.environ[AZURE_SQL_ADMIN_PASSWORD], version12.0, minimal_tls_version1.2, public_network_accessEnabled, ), ) server poller.result() print(server.id) print(server.fully_qualified_domain_name)各字段说明字段含义本示例取值location资源所在地域eastusadministrator_login逻辑服务器管理员登录名sqladminuseradministrator_login_password管理员密码建议经环境变量注入勿硬编码AZURE_SQL_ADMIN_PASSWORDversionSQL 服务器版本12.0minimal_tls_version最低 TLS 版本1.2public_network_access是否允许公网访问Enabled4.3 创建数据库数据库负载通常包含location与Sku。对基础供给流程显式构造模型类比猜测 JSON 结构更清晰import os from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient from azure.mgmt.sql.models import Database, Sku credential DefaultAzureCredential() client SqlManagementClient(credential, subscription_idos.environ[AZURE_SUBSCRIPTION_ID]) poller client.databases.begin_create_or_update( resource_group_namerg-app-prod, server_namemy-sql-server, database_nameappdb, parametersDatabase( locationeastus, skuSku(nameBasic, tierBasic), ), ) database poller.result() print(database.name, database.status)Sku(nameBasic, tierBasic)表示基础层服务层级生产环境可按需替换为Standard、Premium等层级与对应的capacity/family组合。4.4 列出服务器上的数据库from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient credential DefaultAzureCredential() client SqlManagementClient(credential, subscription_id00000000-0000-0000-0000-000000000000) for database in client.databases.list_by_server(rg-app-prod, my-sql-server): print(database.name, database.status)4.5 创建或更新防火墙规则防火墙规则通过client.firewall_rules管理。该操作不以begin_*暴露直接返回资源from azure.identity import DefaultAzureCredential from azure.mgmt.sql import SqlManagementClient from azure.mgmt.sql.models import FirewallRule credential DefaultAzureCredential() client SqlManagementClient(credential, subscription_id00000000-0000-0000-0000-000000000000) rule client.firewall_rules.create_or_update( resource_group_namerg-app-prod, server_namemy-sql-server, firewall_rule_nameoffice-ip, parametersFirewallRule( start_ip_address203.0.113.10, end_ip_address203.0.113.10, ), ) print(rule.name, rule.start_ip_address, rule.end_ip_address)单一 IP 时将start_ip_address与end_ip_address设为同一地址即可203.0.113.0/24是文档示例常用的测试地址段。4.6 删除数据库或服务器删除操作通常同样是长时操作client.databases.begin_delete( resource_group_namerg-app-prod, server_namemy-sql-server, database_nameappdb, ).result() client.servers.begin_delete( resource_group_namerg-app-prod, server_namemy-sql-server, ).result()五、配置要点subscription_id是必填项。保持显式传入不要默认当前 Azure CLI 选中的订阅总是正确的那一个SqlManagementClient面向 Azure Resource Manager公有云的管理端点是https://management.azure.com许多创建与更新调用要求完整的资源负载而不只是你想修改的字段发送部分对象前请阅读对应模型页该包暴露的操作组远不止上述常见项还包括弹性池elastic pools、故障转移组failover groups、托管实例managed instances、备份策略backup policies、同步组sync groups等。在假设某个资源不受支持之前先检查客户端上的操作组。六、常见坑azure-mgmt-sql仅面向管理面它供给和配置 Azure SQL 资源不执行 SQL 语句许多写操作使用begin_*。忘记.result()时代码可能在 ARM 操作完成前就退出资源名是ARM 资源名不是连接字符串或 DNS 名。请保持resource_group_name、server_name、database_name三者概念区分JavaScript 版文档也特别提示不要传example.database.windows.net这类 DNS 名而应传逻辑服务器资源名Azure 认证问题往往来自RBAC 缺失而非凭据损坏。成功的az login并不能保证写权限特殊防火墙规则地址0.0.0.0是 Azure SQL 的“允许 Azure 服务”行为不是通用公网白名单不要随意使用跨资源保持地域假设一致。服务器与数据库的供给在负载与预期地域、SKU 组合不匹配时常常失败或行为异常该包由 Azure 管理 API 生成仍沿用较旧的 Azure SDK 模型模式。不确定时先核对 Microsoft Learn 上的确切模型类型不要凭空发明字段名。七、版本敏感注意事项PyPI 当前将3.0.1列为azure-mgmt-sql的最新稳定版PyPI 发布页还显示预发布线4.0.0b24。除非项目明确面向该线否则不要采用 beta 版本3.0.1是较旧的管理包发布。Microsoft Learn 参考仍然在线但较新的 Azure SQL 平台特性可能先出现在 REST 文档或门户 UX 中然后才进入该 Python SDK 的示例PyPI 上3.0.1的元数据列出了较旧的 Python 分类器。如果项目运行在更新的 Python 版本上请先验证安装并冒烟测试你需要的具体管理操作不要假设该包跟随其他 Azure SDK 库的较新基线。八、仓库内的配套参考本文档在 Context Hub 中以content/azure/docs/mgmt-sql/python/DOC.md形式维护前端元数据frontmatter声明语言为python、版本3.0.1可被 CLI 的chub get按 ID 拉取其内容组织规范见 Content Guide。如需横向对照可继续阅读仓库内以下强相关文档Azure SQL Management Client For JavaScriptazure/arm-sql10.0.0同族管理面 SDK 的 JS/TS 版本操作组为servers、databases、firewallRules长时操作使用beginCreateOrUpdateAndWaitAzure SQL Virtual Machine Management SDK For Python面向 SQL Server 虚拟机的管理包azure-mgmt-sqlvirtualmachine0.5.0同样强调“管理面不执行 SQL”Azure IdentityPython认证文档DefaultAzureCredential与 Entra ID 认证的配套说明。原文档列出的 Microsoft Learn 包索引、客户端参考、各操作组与模型参考、Azure 认证概览以及 PyPI 包页均为权威外部来源读者可自行在对应平台上检索azure-mgmt-sql确认最新 API 形状本文所有可执行示例与注意事项均以仓库内维护的3.0.1版本为准。赞分享【免费下载链接】context-hub项目地址https://gitcode.com/gh_mirrors/co/context-hub点击查看免费下载相关推荐Context Hub 中的 Azure 网络资源管理实践azure/arm-network JavaScript SDK 完全指南Context Hub 中的 Azure 网络资源管理实践azure/arm network JavaScript SDK 完全指南 导读 本文基于 ConContext Hub 精选文档Azure Speech SDK for Pythonazure-cognitiveservices-speech完整实战指南Context Hub 精选文档Azure Speech SDK for Pythonazure cognitiveservices speech完整实战Context Hub 实战指南使用 azure/arm-storage 19.1.0 管理 Azure 存储账户ARM 控制面Context Hub 实战指南使用 azure/arm storage 19.1.0 管理 Azure 存储账户ARM 控制面 本篇技术指南以 Con上一篇终极AI麻将助手完整指南5步开启智能分析之旅下一篇Cling多解释器环境如何在同一进程中运行多个独立C解释器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

PaddleX 通用实例分割产线实战指南:模型选型、快速推理、服务化部署与二次开发

PaddleX 通用实例分割产线实战指南:模型选型、快速推理、服务化部署与二次开发

人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG 【免费下载链接】PaddleX All-in-One Development Tool based on PaddlePaddle 项目地址: https://gitcode.com/paddlepaddle/PaddleX 点击查看 免费下载 通用实例分割(Instance Segmentatio…

2026/10/11 17:59:00 阅读更多 →
大模型Agent开发实战:用MCP协议搭建智能家居控制系统的完整配置流程

大模型Agent开发实战:用MCP协议搭建智能家居控制系统的完整配置流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 16:40:09 阅读更多 →
OpenClaw多Agent实战|一只小龙虾接入多个飞书Bot的openclaw.json配置全解析

OpenClaw多Agent实战|一只小龙虾接入多个飞书Bot的openclaw.json配置全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 18:35:25 阅读更多 →

最新新闻

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

J2EE超市订单后台管理系统实战:从架构设计到事务与库存扣减

直接用标题开写。G同学曾做过一个J2EE课程设计,叫“基于J2EE架构的超市订单后台理系统”,实打实地完整跑通了需求分析、编码、部署全过程。这篇文章就以这个项目代号11812为例,拆解开发全过程,把常规文档不会写的细节一并补上。1.…

2026/10/12 0:55:27 阅读更多 →
论文降AI率工具怎么选?十款实测对比与操作避坑指南

论文降AI率工具怎么选?十款实测对比与操作避坑指南

1. 这次测评的来龙去脉:为什么2026届突然集体焦虑“AI味"2026届本科生现在应该正处于毕业论文写作的关键周期,我不止一次在后台收到类似留言——“导师说我论文AI味太重”“自己写的怎么也被标成AI生成的”“降AI率工具到底哪个靠谱”。这一波焦虑不…

2026/10/12 0:55:27 阅读更多 →
采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

采矿CAD课程设计PPT:从软件操作到工程表达的全链路建模

简介:本资源是一份面向高校采矿工程、地质环境与安全工程专业学生的《采矿CAD课程设计》教学课件,聚焦矿山地质环境治理与生态保护的CAD辅助设计实践。课件系统梳理了矿山地质环境定义、矿区生态破坏成因(含景观与生态双重破坏)、…

2026/10/12 0:54:26 阅读更多 →
桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通

桌面调度台 vs 云端 Agent 平台:Orca、美团 CatPaw、NVIDIA 路由器的三条路线谁先跑通 【免费下载链接】orca Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and …

2026/10/12 0:54:26 阅读更多 →
Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

Kubernetes Python 客户端 V1beta2ResourceClaim 模型详解:Dynamic Resource Allocation 资源声明的完整 API 参考

后端云原生容器编排 【免费下载链接】python Official Python client library for kubernetes 项目地址: https://gitcode.com/gh_mirrors/python1/python 点击查看 免费下载 导读 本文面向使用官方 Kubernetes Python 客户端(本项目仓库 gh_mirrors/p…

2026/10/12 0:54:26 阅读更多 →
CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

CodeIgniter 4 Request 类详解:HTTP 请求的面向对象封装与全局数据安全访问

后端Web框架 【免费下载链接】CodeIgniter4 Open Source PHP Framework (originally from EllisLab) 项目地址: https://gitcode.com/gh_mirrors/co/CodeIgniter4 点击查看 免费下载 本指南以 CodeIgniter 4 官方用户指南 request.rst 为主体,系统讲解框…

2026/10/12 0:54:26 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →