Измените параметры Azure SQL Server «Разрешить доступ к службам Azure» с помощью powershell - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу изменить (включить / отключить) параметры «Разрешить доступ к службам Azure» Azure SQL Server с помощью powershell, основываясь на значении из моей конфигурации JSON

Я сослался на пару StackOverflow, все ответы должны создать правило брандмауэра «0.0.0.0» для включения и «255.255.255.255» для отключения.

Исходя из ответов, у меня есть логика ниже. Это работает иногда и не работает иногда. Тем не менее, я ищу лучшее решение. Есть ли у нас один командлет PowerShell, который выполняет эту работу?

## Allow/Disallow Access to Microsoft services
    # Get the firewall rules list
    $full_sql_server_fwrules = Get-AzureRmSqlServerFirewallRule -ResourceGroupName $full_sql_server_list_iterator.ResourceGroupName -ServerName $full_sql_server_list_iterator.ServerName
        if(($services | where {$_.name -eq $full_sql_server_list_iterator.ServerName}).allowazureservices){
            Write-Output "allowazureservices = True. Enabling Access to Azure services"

            # Flag variable to check if the 'Allow access to Azure Services' is ENABLED.
            # cmdlet throws an error - If we try to enable 'Allow access to Azure Services', when it is already enabled.
            $access_to_MS_services_flag = $false
            foreach($full_sql_server_fwrules_iterator in $full_sql_server_fwrules){
                if($full_sql_server_fwrules_iterator.StartIpAddress -ne "0.0.0.0" -and $full_sql_server_fwrules_iterator.EndIpAddress -ne "0.0.0.0"){
                    $access_to_MS_services_flag = $true
                }
            }

            if(!$access_to_MS_services_flag) {
                Write-Output "Enabling.. 'Allow access to Azure Services'..."
                New-AzureRmSqlServerFirewallRule -ServerName $full_sql_server_list_iterator.ServerName -ResourceGroupName $full_sql_server_list_iterator.ResourceGroupName -AllowAllAzureIPs
            }     

        }elseif(!($services | where {$_.name -eq $full_sql_server_list_iterator.ServerName}).allowazureservices){
            Write-Output "allowazureservices = False. Disabling Access to Azure services"
            # IF 'Allow access to Azure Services' is ENABLED. SQL Server will have a firewall with StartIP and EndIP as 0.0.0.0
            foreach($full_sql_server_fwrules_iterator in $full_sql_server_fwrules){
                if($full_sql_server_fwrules_iterator.StartIpAddress -ne "0.0.0.0" -and $full_sql_server_fwrules_iterator.EndIpAddress -ne "0.0.0.0"){
                    Remove-AzureRmSqlServerFirewallRule -FirewallRuleName $full_sql_server_fwrules_iterator.FirewallRuleName -ServerName $full_sql_server_fwrules_iterator.ServerName -ResourceGroupName $full_sql_server_fwrules_iterator.ResourceGroupName
                }
            }
        }

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете попробовать опцию ниже для создания / изменения настроек через Powershell, чтобы изменить настройки «Разрешить доступ к службам Azure»:

1) Используйте New-AzureSqlDatabaseServerFirewallRule, чтобы установить это.

New-AzureSqlDatabaseServerFirewallRule -ServerName "SERVER NAME" -AllowAllAzureServices

2) А если вы хотите изменить настройки, попробуйте ниже:

PS C:\>Set-AzSqlServerFirewallRule -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -FirewallRuleName "Rule01" -StartIpAddress "192.168.0.197" -EndIpAddress "192.168.0.199"

Дополнительную информацию можно также найти в статье ниже:

Azure SQLПараметры конфигурации брандмауэра базы данных

Если вы еще не обращали на это внимания, вот еще одна статья, которая может помочь в том, что вы ищете:

Установка Azure Sql ServerПравила брандмауэра

Надеюсь, это поможет!

...