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-серверу?
Спасибо!
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.
Если вы хотите разрешить службам Azure доступ к параметру сервера при создании нового SQL Server Azure, он фактически создает новое правило брандмауэра с именем по умолчанию: " 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();