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
相关产品推荐
相关产品推荐

