Измените параметр Разрешить доступ к настройкам служб Azure в Azure SQL Server с помощью powershell

Я хочу изменить (включить / отключить) параметры «Разрешить доступ к службам 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
                }
            }
        }

person Manjunath Rao    schedule 25.04.2019    source источник


Ответы (1)


Вы можете попробовать следующий вариант создания / изменения настроек через 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"

Вы также можете взглянуть на статью ниже для получения дополнительной информации:

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

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

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

person Monika Reddy    schedule 26.04.2019
comment
Я ищу что-то прямое, как у нас с ADLS: Set-AzureRmDataLakeStoreAccount -Name $ full_datalake_store_list_iterator.Name -AllowAzureIpState Disabled - person Manjunath Rao; 26.04.2019