使用 vso powershell 任务自动将客户端 IP 地址设置为 azure sql 服务器
Set Client IP address to the azure sql server automatically using vso powershell task
问题:当我创建新的 sql 服务器和数据库时。我的下一个任务是连接数据库,但由于客户端 IP 未添加到 sql 服务器的防火墙中而中断。
我不想手动添加它。
有什么方法可以使用 Powershell 进行设置吗?它应该与我在 azure sql 服务器防火墙和虚拟网络中看到的 IP 完全相同。
解决方法
目前我使用 azure sql 任务添加了从 0.0.0.0 到 255.255.255.255 的 IP 范围,但这不是正确的方法。
exec sp_set_firewall_rule N'AllowAzure', '0.0.0.0', '255.255.255.255';
是的,您可以使用 Set-AzureRmSqlServerFirewallRule
cmdlet。
要检索当前 IP,我使用 ipify.org。示例:
$clientIp = Invoke-WebRequest 'https://api.ipify.org' | Select-Object -ExpandProperty Content
Set-AzureRmSqlServerFirewallRule `
-ResourceGroupName "myrg" `
-ServerName "myserver" `
-FirewallRuleName "myrulename" `
-StartIpAddress $clientIp `
-EndIpAddress $clientIp
问题:当我创建新的 sql 服务器和数据库时。我的下一个任务是连接数据库,但由于客户端 IP 未添加到 sql 服务器的防火墙中而中断。 我不想手动添加它。 有什么方法可以使用 Powershell 进行设置吗?它应该与我在 azure sql 服务器防火墙和虚拟网络中看到的 IP 完全相同。
解决方法 目前我使用 azure sql 任务添加了从 0.0.0.0 到 255.255.255.255 的 IP 范围,但这不是正确的方法。
exec sp_set_firewall_rule N'AllowAzure', '0.0.0.0', '255.255.255.255';
是的,您可以使用 Set-AzureRmSqlServerFirewallRule
cmdlet。
要检索当前 IP,我使用 ipify.org。示例:
$clientIp = Invoke-WebRequest 'https://api.ipify.org' | Select-Object -ExpandProperty Content
Set-AzureRmSqlServerFirewallRule `
-ResourceGroupName "myrg" `
-ServerName "myserver" `
-FirewallRuleName "myrulename" `
-StartIpAddress $clientIp `
-EndIpAddress $clientIp