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

Azure新手求助:通过CloudShell脚本配置Azure SQL DB防火墙规则

Azure SQL数据库PowerShell配置(CloudShell环境)

前提准备

在CloudShell中先完成Azure登录并指定目标订阅:

Connect-AzAccount # 未登录时执行此命令
Set-AzContext -Subscription "你的订阅ID或名称"

1. 设置公共终结点

新建SQL服务器时配置

直接在创建命令中启用公共网络访问:

# 替换为你的资源信息
$serverName = "unique-sql-server-name"
$resourceGroupName = "your-resource-group"
$location = "eastus"

New-AzSqlServer -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -Location $location `
    -SqlAdministratorCredentials (Get-Credential) `
    -PublicNetworkAccess "Enabled"

修改已有SQL服务器

如果服务器已存在,执行以下命令开启公共访问:

Set-AzSqlServer -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -PublicNetworkAccess "Enabled"

2. 允许Azure服务访问服务器

添加专用防火墙规则,对应手动界面的「允许Azure服务和资源访问此服务器」选项:

New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -FirewallRuleName "AllowAllAzureIPs" `
    -StartIpAddress "0.0.0.0" `
    -EndIpAddress "0.0.0.0"

说明:0.0.0.0是Azure服务的特殊IP标识,添加此规则后Azure内部服务即可访问该SQL服务器。


3. 添加当前客户端IP地址

CloudShell可自动获取当前出口IP(即你访问CloudShell的公网IP),直接添加防火墙规则:

# 获取当前客户端公网IP
$clientIp = (Invoke-RestMethod -Uri "http://ifconfig.me/ip").Trim()

# 添加IP规则
New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -FirewallRuleName "AllowCurrentClientIP" `
    -StartIpAddress $clientIp `
    -EndIpAddress $clientIp

验证配置

执行以下命令查看已生效的防火墙规则和服务器访问设置:

# 查看防火墙规则
Get-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName -ServerName $serverName

# 查看服务器公共访问配置
(Get-AzSqlServer -ResourceGroupName $resourceGroupName -ServerName $serverName).PublicNetworkAccess

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:34:59