Azure sql database 正在寻找访问Azure SQL数据库的更好方法?

Azure sql database 正在寻找访问Azure SQL数据库的更好方法?,azure-sql-database,ssms,firewall,Azure Sql Database,Ssms,Firewall,现在,每当我想访问MS Azure SQL上的数据库时,我都需要登录并将我的IP地址添加到防火墙中的IP列表中,然后才能运行查询 是否有更好的方法可以验证我的计算机始终访问数据库,而无需每次将自己添加到防火墙白名单 我知道自己获得固定IP或添加0.0.0.0-255.255.255.255的IP范围基本上可以解决问题,但还有其他选择吗?您只需运行以下PowerShell脚本即可自动为您创建防火墙规则,然后,您只需运行SQLServerManagementStudio或Azure DataStud

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

是否有更好的方法可以验证我的计算机始终访问数据库,而无需每次将自己添加到防火墙白名单


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

您只需运行以下PowerShell脚本即可自动为您创建防火墙规则,然后,您只需运行SQLServerManagementStudio或Azure DataStudio即可连接到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。

是否会清除添加到白名单中的所有旧ip地址?如果未创建,则会创建规则名称“My Home”。如果已创建,则会将IP地址更改为当前客户端IP。