You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell查询Azure托管实例中的数据库?

针对Azure SQL托管实例的PowerShell查询方案

原代码的问题点

  • 服务器地址格式不符合Azure托管实例的规范
  • 查询语句字符串未闭合(缺少结尾双引号)
  • 未显式指定Azure SQL强制要求的加密连接参数

修正后的SQL认证查询代码

# 定义连接参数
$sqlParams = @{
    Server         = "<你的托管实例名>.database.windows.net" # 公网访问用此格式,私有环境替换为内部FQDN
    Database       = "<目标数据库名称>"
    Username       = "<SQL登录账号>"
    Password       = "<SQL登录密码>"
    Query          = "SELECT * FROM [dbo].[SystemInfo] WHERE <合法查询条件>" # 补全有效的WHERE子句逻辑
    Encrypt        = "True" # Azure SQL强制要求加密连接
    TrustServerCertificate = "False" # 使用Azure官方CA证书,不自定义信任
}

# 执行查询并获取结果
$testQuery = Invoke-Sqlcmd @sqlParams

可选:Azure AD身份认证查询方式

如果使用Azure AD账号(如同步的本地AD账号或Azure AD原生用户),可以用以下代码:

$sqlParams = @{
    Server         = "<你的托管实例名>.database.windows.net"
    Database       = "<目标数据库名称>"
    Query          = "SELECT * FROM [dbo].[SystemInfo] WHERE <合法查询条件>"
    Encrypt        = "True"
    TrustServerCertificate = "False"
    Authentication = "ActiveDirectoryPassword" # 本地AD集成认证可改用ActiveDirectoryIntegrated
    Username       = "<Azure AD账号>"
    Password       = "<Azure AD账号密码>"
}

$testQuery = Invoke-Sqlcmd @sqlParams

关键注意事项

  • 公网访问时,需确保客户端IP已加入托管实例的防火墙允许列表
  • 私有网络访问时,客户端需处于同一虚拟网络或通过VPN/ExpressRoute连通
  • 必须补全WHERE子句的有效逻辑,比如WHERE SystemInfoId = 1这类合法条件

内容的提问来源于stack exchange,提问作者Ayanda ezekiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:41:07