从 Azure MySQL 迁移到 SQL Server,我需要指定可以访问 Db 的 IP 地址范围。
0.0.0.0 到 255.255.255.255 的范围可以输入吗?是否有一系列 IP 地址会给我一个“全部允许”。对我来说,知道请求来自哪里并不断更新数据库防火墙规则是不切实际的。
从 Azure MySQL 迁移到 SQL Server,我需要指定可以访问 Db 的 IP 地址范围。
0.0.0.0 到 255.255.255.255 的范围可以输入吗?是否有一系列 IP 地址会给我一个“全部允许”。对我来说,知道请求来自哪里并不断更新数据库防火墙规则是不切实际的。
0.0.0.0 到 255.255.255.255 的范围可以输入吗?是否有一系列 IP 地址会给我一个“全部允许”。对我来说,知道请求来自哪里并不断更新数据库防火墙规则是不切实际的。
是的,这将允许从每个 IP 地址访问您的 SQL Azure 数据库,但当然不推荐这样做。当您提到您不知道从哪里收到请求时,您是指对您的应用程序的请求还是连接到数据库的请求?如果是对您的应用程序的请求,您实际上不需要指定此范围。您可以只指定 0.0.0.0,这将允许您在 Windows Azure 中运行的应用程序访问此数据库。
每次您希望从新的连接时,我建议您使用适用于 mac 的 powershell / Azure 命令行工具 ( http://azure.microsoft.com/en-us/documentation/articles/command-line-tools/ ) 运行脚本知识产权。
如果使用 Mac 使用命令行工具链接您的 Azure 订阅,则:
#!/bin/bash externalIP=$(curl -s icanhazip.com) ruleName="temp$externalIP" 回声“$外部IP” azure sql firewallrule create [ServerName] "$ruleName" "$externalIP" "$externalIP"
将其保存为 azureip.sh 并从终端运行。
如果使用 Windows,有很多使用 PowerShell 的示例
添加到 Ronald 的解决方案,删除现有的临时规则并使用 ipv4 端点。
#!/bin/bash
server="yourservername"
azure sql firewallrule list $server | awk '{print $2}' | grep temp | while read line ; do azure sql firewallrule delete $server $line -q ; done
externalIP=$(curl -s ipv4.icanhazip.com)
ruleName="temp$externalIP"
azure sql firewallrule create $server "$ruleName" "$externalIP" "$externalIP"
它很旧,但刚到这里,我猜 Azure SQL 数据库服务器(配置选项卡)下允许服务是或否。将其切换为是