基于Azure订阅连接Azure SQL并执行SQL命令的方案问询
通过Azure CLI利用订阅身份执行SQL命令的方案
核心思路
Azure CLI的az sql系列命令主要面向资源管理,但可以借助Azure AD身份验证结合工具或预览命令,实现基于当前订阅上下文连接SQL数据库并执行通用SQL操作,全程无需手动获取密码或连接字符串敏感信息。
具体实现步骤
1. 环境准备
- 确保安装最新版Azure CLI,已登录并切换到目标订阅:
az login az account set --subscription <你的订阅ID/名称> - 安装
sqlcmd工具(Windows系统默认自带,Linux/macOS可通过包管理器如apt、brew安装)
2. 两种执行SQL的方式
方法一:sqlcmd + Azure AD集成认证
直接复用当前Azure CLI的登录身份连接数据库,无需输入密码:
sqlcmd -S <SQL服务器名称>.database.windows.net -d <数据库名称> -G -Q "SELECT * FROM <目标表名>"
参数说明:
-G:启用Azure AD身份验证,自动调用当前CLI上下文的账户权限-Q:指定要执行的SQL命令(支持查询、插入、更新、删除等所有DML操作)
方法二:Azure CLI预览命令az sql db execute
使用Azure CLI的SQL扩展预览命令,直接通过CLI执行SQL:
# 先安装SQL扩展(仅需执行一次) az extension add --name sql # 执行SQL命令 az sql db execute --resource-group <资源组名称> --server <SQL服务器名称> --name <数据库名称> --query-text "INSERT INTO <目标表名> (列1,列2) VALUES ('值1','值2')"
权限要求
当前Azure AD账户需具备以下任一权限:
- 订阅层面的SQL DB Contributor角色
- 数据库层面的db_datareader/db_datawriter等角色(可通过Azure门户或SQL命令授予)
内容的提问来源于stack exchange,提问作者WestCoastProjects
相关产品推荐
相关产品推荐

