首页 > 解决方案 > Azure SQL Server 防火墙规则使用 PowerShell 添加多个 IP 地址以进行数据库连接

问题描述

如何将多个添加 IP addressesAzure SQL ServerusingPowerShell 以便多个管理员可以使用SSMS. 可以通过门户完成,但我们已经关闭了这条路线,一切都通过PowerShell

我有这段代码,但我认为它不符合我们的要求。

 $ServerFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $ResourceGroupName `
    -ServerName $ServerName `
    -FirewallRuleName "AllowedIPs" -StartIpAddress $StartIp -EndIpAddress $EndIp

例如

管理员 1 ipaddress-1: 158.****

管理员 2 ipaddress-2: 196.****

标签: azurepowershellazure-sql-databaseazure-powershell

解决方案


请尝试使用以下 PowerShell 将当前客户端 IP 地址添加到 Azure SQL 防火墙白名单。您的管理员可以手动运行 PowerShell,也可以安排可以在计算机启动时运行 PowerShell 的 Windows 计划任务。

$subscriptionName = 'Your Subscription'
$ipGetCommand = 'http://www.iplocation.net/find-ip-address' 
$firewallRule = 'My-Home'
$serverName = "Your Server Name";
$webclient = New-Object System.Net.WebClient
$queryResult = $webclient.DownloadString($ipGetCommand)
$queryResult -match '\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b'
$currentPublicIp = $($matches[0])

Select-AzureSubscription -SubscriptionName $subscriptionName



If ((Get-AzureSqlDatabaseServerFirewallRule -ServerName $serverName -RuleName $firewallRule) -eq $null) {
    New-AzureSqlDatabaseServerFirewallRule -ServerName $serverName -RuleName $firewallRule -StartIpAddress $currentPublicIp -EndIpAddress $currentPublicIp
}
else {
    Set-AzureSqlDatabaseServerFirewallRule -ServerName $serverName -RuleName $firewallRule -StartIpAddress $currentPublicIp -EndIpAddress $currentPublicIp
}

推荐阅读