2017-10-07 24 views
1

如何通過PowerShell或C#遠程更新我的天藍SQL防火牆和本地PC IP地址進行管理。如何通過PowerShell或C遠程更新本地IP的天藍SQL防火牆

我已經看過文檔,但我只能找出如何從實際的服務器本身,而不是遠程。

我可以讓visual studio彈出並詢問我是否想隨機將我的IP地址添加到防火牆,但大多數時候它只是失敗,並不問我,所以我正在尋找除手動以外的解決方案只要我的IP地址發生變化,就可以登錄到Azure門戶。

尋找示例或指向顯示使用哪個庫的文檔的鏈接。

+0

你有關於這個主題的任何更新?如果它有用,請將其標記爲可以幫助更多有相同問題的社區輕鬆搜索。 –

回答

1

對於PowerShell,您需要使用New-AzureRmSqlServerFirewallRule

從這個link

新AzureRmSqlServerFirewallRule -ResourceGroupName 「myResourceGroup」 -ServerName $servername -FirewallRuleName 「AllowSome」 -StartIpAddress 「0.0.0.0」 -EndIpAddress 「0.0.0.0」

+0

我如何進行身份驗證?它如何知道我的天藍色訂閱用戶名和密碼? – rolls

+0

您將以'Login-AzureRmAccount'開始驗證自己。 –

3

我們可以用Microsoft.Azure.Management.FluentMicrosoft.Azure.Management.ResourceManager.Fluent這樣做,關於庫的更多詳細信息,請參閱packages.config。我們還可以從github獲得更多demo code。編碼之前,我們需要註冊一個Azure AD應用程序併爲其分配相應的角色,更多詳細信息請參閱document。然後,我們可以從Azure AD App獲取clientId,密鑰(密鑰)和租戶。之後,我們可以用下面的格式

subscription=########-####-####-####-############ 
client=########-####-####-####-############ 
tenant=########-####-####-####-############ 
key=XXXXXXXXXXXXXXXX 
managementURI=https\://management.core.windows.net/ 
baseURL=https\://management.azure.com/ 
authURL=https\://login.windows.net/ 
graphURL=https\://graph.windows.net/ 

演示代碼創建Auth file

var credFile = @"File Path"; // example: c:\tom\auth.txt 
      var resourceGroup = "resource group"; 
      var azureSQLServer = "Azure sql server name"; //just name of the Azure sql server such as tomdemo 
      var firewallRull = "firewall rull name";//such as myFirewallRull 
      var firewallRuleIPAddress = "x.x.x.x";//your Ip address 
      var credentials = SdkContext.AzureCredentialsFactory.FromFile(credFile); 
      var azure = Azure 
       .Configure() 
       .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic) 
       .Authenticate(credentials) 
       .WithDefaultSubscription(); 

      var sqlServer = azure.SqlServers.GetByResourceGroup(resourceGroup, azureSQLServer); 
      var newFirewallRule = sqlServer.FirewallRules.Define(firewallRull) 
       .WithIPAddress(firewallRuleIPAddress) 
       .Create(); 

packages.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.AppService.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Batch.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Cdn.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Compute.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.ContainerInstance.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.ContainerRegistry.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.CosmosDB.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Dns.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Graph.RBAC.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.KeyVault.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Network.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Redis.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.ResourceManager.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Search.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.ServiceBus.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Sql.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.Storage.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Azure.Management.TrafficManager.Fluent" version="1.3.0" targetFramework="net461" /> 
    <package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" /> 
    <package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" /> 
    <package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" /> 
    <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.28.3" targetFramework="net461" /> 
    <package id="Microsoft.Rest.ClientRuntime" version="2.3.9" targetFramework="net461" /> 
    <package id="Microsoft.Rest.ClientRuntime.Azure" version="3.3.10" targetFramework="net461" /> 
    <package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.3.1" targetFramework="net461" /> 
    <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net461" /> 
    <package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net461" /> 
    <package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net461" /> 
    <package id="System.Linq.Queryable" version="4.0.0" targetFramework="net461" /> 
    <package id="System.Net.Requests" version="4.0.11" targetFramework="net461" /> 
    <package id="System.Spatial" version="5.8.2" targetFramework="net461" /> 
    <package id="WindowsAzure.Storage" version="8.1.4" targetFramework="net461" /> 
</packages> 
+0

credfile是auth文件的別稱嗎? – rolls

+0

'credfile'是auth文件的路徑,包括auth文件名。 –