寻找访问Azure SQL数据库的更好方法吗?

时间:2019-05-15 10:13:33

标签: azure-sql-database ssms firewall

现在,每当我要访问MS Azure SQL上的数据库时,都需要登录并将IP地址添加到防火墙中的IP列表中,然后才可以运行查询。

有没有更好的方法可以验证我的计算机始终访问数据库,而不必每次都将自己添加到防火墙白名单中。

我知道自己自己获取固定IP或添加IP范围0.0.0.0-255.255.255.255本质上可以解决问题,但是还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

您只需运行以下PowerShell脚本来自动为您创建防火墙规则,然后只需运行SQL Server Management Studio或Azure Data Studio即可连接到Azure SQL数据库。

此脚本会将您当前的IP添加到防火墙白名单中。

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

您还可以在计算机上创建计划任务,以在启动计算机时为您运行此PowerShell。