2016-11-11 72 views
0

我正在嘗試使用Azure SDK for .NET檢查SQL Azure數據庫的複製角色。在C#中獲取SQL Azure數據庫複製角色

我使用SqlManagementClient從訂閱中提取數據庫,但沒有指示覆制角色的屬性。

我用下面的代碼來獲取數據庫。

var client = GetSqlManagementClient(); 

var database = client.Databases 
    .List("<serverName>") 
    .First(x => x.Name == "<databaseName>"); 

是否有另一種方法來獲取我缺少的這些信息?

+0

是否有幫助:https://msdn.microsoft.com/en-us/library/azure/mt600929.aspx – TheGameiswar

+0

是的,我發現它更早,但看起來它沒有在客戶端實現。我想我必須寫下它;)謝謝! –

回答

1

如果您的意思是第二次閱讀位置,我認爲Azure ARM管理可以幫助我們做到這一點。我試圖在我的本地和獲得的結果如下:

enter image description here

[更新]

這裏是我的測試代碼:

public async Task<string> GetToken() 
     { 
      AuthenticationResult result = null; 
      string test; 
      AuthenticationContext authContext = new AuthenticationContext(adInfo.AuthUrl + adInfo.Telnant); 
      ClientCredential cc = new ClientCredential(adInfo.ClientId, adInfo.ClientSecret); 
      try 
      { 
       result = await authContext.AcquireTokenAsync(adInfo.Resource,cc);    
       test = result.AccessToken; 
       return test; 
      } 
      catch (AdalException ex) 
      { 
       return ex.Message; 
      } 
     } 

     public async Task GetSQLInfo() 
     { 
      string token = await GetToken(); 
      var sqlclient = new SqlManagementClient(new TokenCloudCredentials(adApplication.Subscription, token)); 
      var data = await sqlclient.Databases.GetAsync("jatestgroup", "jaserver", "jasql"); 
     } 

這裏是我的關於adInfo和adApplication的課程:

public class AdInfo 
    { 
     [JsonProperty(PropertyName = "clientid")] 
     public string ClientId { get; set; } 
     [JsonProperty(PropertyName = "clientsecret")] 
     public string ClientSecret { get; set; } 
     [JsonProperty(PropertyName = "returnurl")] 
     public string ReturnUrl { get; set; } 
     [JsonProperty(PropertyName = "telnantid")] 
     public string Telnant { get; set; } 
     [JsonProperty(PropertyName = "authurl")] 
     public string AuthUrl { get; set; } 
     [JsonProperty(PropertyName = "resource")] 
     public string Resource { get; set; } 

    } 
    public class AdApplication 
    { 
     [JsonProperty(PropertyName = "ARMTemplate")] 
     public AdInfo Application { get; set; } 
     [JsonProperty(PropertyName = "subscription")] 
     public string Subscription { get; set; } 
    } 

的json設置:

{ 
    "ARMTemplate": { 
    "clientid": "****", 
    "clientsecret": "****", 
    "returnurl": "http://localhost:20190", 
    "telnantid": "****", 
    "authurl": "https://login.microsoftonline.com/", 
    "resource": "https://management.core.windows.net/" 
    }, 
    "subscription": "***" 
} 

由於這一問題更具有相關驗證失敗。我建議你創建一個新的線程,並給我們更多的信息,如果我的代碼不給你的幫助。

+0

您能分享您在示例中使用的代碼嗎?它是否與'SqlManagementClient'一起使用? –

+0

我已經能夠使用它'TokenCloudCredentials'。但是,如果數據庫本身返回給我們默認的輔助位置,但不是角色。 –