Как я могу настроить свою базу данных так, чтобы я мог подключиться с любого компьютера? - PullRequest
0 голосов
/ 25 октября 2019

Я новичок в Azure. Создайте базу данных на своем сервере для работы в команде. но я должен добавить IP к брандмауэрам каждого из них. Проблема в том, что IP-адрес меняется, и IP-адрес должен быть обновлен. Нужно ли мне знать, есть ли другая форма конфигурации для доступа с любого IP?

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Как упоминал Джои Кай, вы можете создать правило брандмауэра, чтобы принимать доступ со всех IP-адресов. Однако мы решили эту проблему, создав приложение, которое наши пользователи в дороге запускают, чтобы обновить для них правила брандмауэра и получить доступ к базе данных SQL Azure.

Из C # вы можете получить доступ ко всем ресурсам Azure через Microsoft.Azure. Management.Fluent, как это

// Create an authentication context to Azure and acquire a login token
var context = new AuthenticationContext("https://login.microsoftonline.com/tenantId");
var auth = await context.AcquireTokenAsync("https://management.core.windows.net/",
                    "yourClientId", new Uri("urn:ietf:wg:oauth:2.0:oob"),
                    new PlatformParameters(PromptBehavior.Always));
var tokenCredentials = new TokenCredentials(token);
var azureCredentials = new AzureCredentials(tokenCredentials, tokenCredentials, 
                           AzureParts.Tenant, AzureEnvironment.AzureGlobalCloud);

// Build the client with the acquired token as a credential.
RestClient client = RestClient.Configure()
                .WithEnvironment(AzureEnvironment.AzureGlobalCloud)
                .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
                .WithCredentials(azureCredentials)
                .Build();

// Authenticate against azure with the correct subscription to access.
var azure = Azure.Authenticate(client, AzureParts.Tenant)
                .WithSubscription("subscriptionId");

// Search for the sql server and add a firewall rule.
var sqlServer = azure.SqlServers.GetByResourceGroup("ResourceGroup", "servername");
sqlServer.FirewallRules.Define("LetMeIn").WithIPAddress("yourIp").Create();

Обратите внимание, что получение токена входа в систему через AcquireTokenAsync откроет окно входа в систему и, следовательно, не может использоваться в автоматическом режиме. Вы можете предоставить токен-кеш с уже сохраненным токеном, если хотите войти в систему только один раз.

0 голосов
/ 25 октября 2019

Было бы желательно иметь какое-то промежуточное программное обеспечение для доступа к БД, а не к вашим клиентам напрямую.

Однако, если вы хотите, чтобы какой-либо IP мог подключаться к БД, просто добавьте эту запись в брандмауэр. список:

Портал Azure -> Сервер SQL Azure -> База данных -> установить брандмауэр сервера и добавить следующее правило:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...