Azure 新手。我尝试通过从 CloudShell 运行的脚本来设置 Azure SQL 数据库来模拟手动设置。我使用此网站作为起点:https://www.sqlshack.com/provisioning-azure-sql-database-using-azure-powershell/
我想编写脚本:
我对 Azure、防火墙不熟悉,所以请温柔一点。
您可以运行下面的 PowerShell 脚本以在 Azure SQL 数据库中启用公共 IP 地址:
Import-Module Az.Accounts
Import-Module Az.Sql
Connect-AzAccount
Select-AzSubscription -SubscriptionId "<subscriptionId>"
$SecureString = ConvertTo-SecureString "<adminPassword>" -AsPlainText -Force
Set-AzSqlServer -ServerName "<serverName>" -ResourceGroupName "<RGName>" -SqlAdministratorPassword $SecureString -PublicNetworkAccess "Enabled"
您可以看到如下图所示的结果:
并开启公网访问,如下:
根据this,如果您向 SQL Server 添加以 0.0.0.0 作为起始和结束 IP 地址的防火墙规则,则“允许 Azure 服务和资源访问此服务器”将设置为“是”。运行下面的脚本来设置防火墙规则:
az sql server firewall-rule create --resource-group "<RGName>" --server "<serverName>" -n "<firewallRuleName>" --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
您可以看到如下结果:
并且“允许Azure服务和资源访问此服务器”设置为yes,如下所述:
您可以运行以下脚本将当前IP地址添加到SQL服务器。调用“https://api.ipify.org”获取当前IP,如下所示:
$ipAddress = Invoke-WebRequest 'https://api.ipify.org' | Select-Object -ExpandProperty Content
az sql server firewall-rule create --resource-group "<RGName>" --server "<serverName>" -n "<firewallRuleName>" --start-ip-address $ipAddress --end-ip-address $ipAddress
您可以看到如下结果:
它将把当前的IP地址添加到防火墙规则中,如下所述: