Azure SQL Server 防火墙规则使用 PowerShell 添加多个 IP 地址以进行数据库连接

问题描述 投票:0回答:2

如何使用

IP addresses
将多个
Azure SQL Server
添加到
PowerShell
这样多个管理员就可以使用
SSMS
从他们的计算机连接到数据库。可以通过门户完成,但我们已经关闭了该路线,一切都通过
PowerShell

完成

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

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

例如

管理员1 IP地址-1:158.****

管理员2 IP地址-2:196.****

azure powershell azure-sql-database azure-powershell
2个回答
2
投票

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

$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
}

0
投票

设置要在当前会话中使用的 cmdlet 的订阅:

Set-AzContext -Subscription <Subscription_ID>

为资源组和 SQL Server 设置变量:

$resourceGroup = "Name_of_ResourceGroup"
$sqlserver = "Name_of_AzureSQLserver"

您可以在“$ips”数组中添加多个防火墙规则:

$ips = @(
"ipaddress-1",
"ipaddress-2",
"ipaddress-3",
"ipaddress-4",
"ipaddress-5",
"ipaddress-*",
)

PowerShell foreach语句:

foreach ($ip in $ips) {
$ruleName = "admin-$($ips.IndexOf($ip) + 1)"
New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroup -ServerName $sqlserver -FirewallRuleName $ruleName -StartIpAddress $ip -EndIpAddress $ip
}
© www.soinside.com 2019 - 2024. All rights reserved.