SQL Server с созданием доступа к Azure с помощью библиотек управления Azure для .Net

Я создаю SQL-серверы Azure с помощью библиотек управления Azure для .Net, и мне нужно добавить правило брандмауэра, чтобы разрешить службам Azure доступ к новому серверу (например, переключатель на портале). В настоящее время я создаю сервер следующим образом

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx")
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();

Есть ли какой-либо вариант, который я не нашел, чтобы вообще разрешить службам Azure доступ к этому SQL-серверу?

Спасибо!


person Doppelmoep    schedule 27.08.2017    source источник


Ответы (2)


Есть ли какой-либо вариант, который я не нашел, чтобы вообще разрешить службам Azure доступ к этому SQL-серверу?

Таким образом, на уровне API нет настройки, позволяющей службам Azure получать доступ к SQL Server. Что происходит за кулисами, так это то, что когда вы хотите установить этот параметр через портал, для вас создается правило брандмауэра с 0.0.0.0 IP-адресом.

Поскольку 0.0.0.0 на самом деле не является IP-адресом, API Azure рассматривает это как особый случай, чтобы разрешить доступ к службам Azure.

Это то, что вам также нужно будет сделать.

Пожалуйста, попробуйте следующий код:

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("0.0.0.0") // Allow access to Azure Services
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();

и вы должны увидеть, что ваши службы Azure смогут получить доступ к этому SQL Server.

person Gaurav Mantri    schedule 27.08.2017

Если вы хотите включить параметр разрешить службам Azure доступ к серверу при создании нового Azure SQL Server, он фактически создает новое правило брандмауэра с именем по умолчанию: "AllowAllWindowsAzureIp" с startIpAddress: 0.0.0.0 и endIpAddress: 0.0.0.0

введите здесь описание изображения

Я думаю, что на основе приведенных выше свойств правила брандмауэра по умолчанию он должен определить как startIpAddress, так и endIpAddress как 0.0.0.0.

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("0.0.0.0", "0.0.0.0")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();
person juvchan    schedule 27.08.2017