我是Azure的新手,与您的服务器一起创建数据库以团队合作。但是我必须将IP添加到每个防火墙。问题是IP更改了,并且IP必须更新。我是否需要知道是否可以通过任何IP访问另一种配置形式?
答案 0 :(得分:0)
建议让某种中间件访问数据库,而不是直接访问您的客户端。
但是,如果您希望任何IP能够连接到数据库,只需将此条目添加到防火墙列表中即可:
Azure门户-> Azure Sql Server->数据库->设置服务器防火墙并添加以下规则:
答案 1 :(得分:0)
正如Joey Cai提到的,您可以创建防火墙规则以接受来自所有IP地址的访问。但是,我们通过构建一个应用程序来解决此问题,我们的用户可以在运行时为其更新防火墙规则并获得对Azure SQL数据库的访问权限。
从C#中,您可以通过Microsoft.Azure.Management.Fluent这样访问所有Azure资源
// 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获取登录令牌将打开一个登录窗口,因此不能以自动方式使用。如果您只想登录一次,则可以为令牌缓存提供一个已经存储的令牌。