public virtual void TestDatabaseSensitivityLabels() { using (SqlManagementTestContext context = new SqlManagementTestContext(this)) { ResourceGroup resourceGroup = context.CreateResourceGroup(); string resourceGroupName = resourceGroup.Name; Server server = context.CreateServer(resourceGroup); string serverName = server.Name; ISqlManagementClient client = context.GetClient <SqlManagementClient>(); CreateFirewallRule(resourceGroupName, serverName, client); string databaseName = GetDatabaseName(); Database database = client.Databases.CreateOrUpdate( resourceGroupName, serverName, databaseName, new Database() { Location = server.Location, }); Assert.NotNull(database); CreateTableIfNeeded(serverName, server.FullyQualifiedDomainName, databaseName); RunTest(client, resourceGroupName, serverName, databaseName); client.Databases.Delete(resourceGroupName, serverName, databaseName); client.Servers.Delete(resourceGroupName, serverName); } }
protected virtual SensitivityLabel CreateOrUpdateSensitivityLabel(ISqlManagementClient client, string resourceGroupName, string serverName, string databaseName, string schemaName, string tableName, string columnName, SensitivityLabel label) { return(client.SensitivityLabels.CreateOrUpdate( resourceGroupName, serverName, databaseName, schemaName, tableName, columnName, label)); }
protected virtual SensitivityLabel GetSensitivityLabel(ISqlManagementClient client, string resourceGroupName, string serverName, string databaseName, string schemaName, string tableName, string columnName) { return(client.SensitivityLabels.Get(resourceGroupName, serverName, databaseName, schemaName, tableName, columnName, SensitivityLabelSource.Current)); }
protected virtual void DeleteSensitivityLabel(ISqlManagementClient client, string resourceGroupName, string serverName, string databaseName, string schemaName, string tableName, string columnName) { client.SensitivityLabels.Delete(resourceGroupName, serverName, databaseName, schemaName, tableName, columnName); }
public AzureSqlManager(IOptions <AzureOptions> azureOptions) { _azureOptions = azureOptions; var azureCreds = AzureTokenService.GetAzureCredentials(_azureOptions.Value.ClientId, _azureOptions.Value.AppSecret, _azureOptions.Value.TenantId, _azureOptions.Value.SubscriptionId); var restClient = RestClient.Configure().WithEnvironment(azureCreds.Environment).WithCredentials(azureCreds).Build(); _client = new SqlManagementClient(restClient) { SubscriptionId = azureCreds.DefaultSubscriptionId }; }
protected void RunTest(ISqlManagementClient client, string resourceGroupName, string serverName, string databaseName) { IPage <SensitivityLabel> sensitivityLabels = ListCurrentSensitivityLabels( client, resourceGroupName, serverName, databaseName); Assert.NotNull(sensitivityLabels); Assert.Empty(sensitivityLabels); sensitivityLabels = ListRecommendedSensitivityLabels(client, resourceGroupName, serverName, databaseName); Assert.NotNull(sensitivityLabels); Assert.NotEmpty(sensitivityLabels); int recommendedLabelsCount = sensitivityLabels.Count(); SensitivityLabel recommendedLabel = sensitivityLabels.First(); string columnName = recommendedLabel.Id.Split("/")[16]; SensitivityLabel newLabel = new SensitivityLabel( labelName: recommendedLabel.LabelName, labelId: recommendedLabel.LabelId, informationType: recommendedLabel.InformationType, informationTypeId: recommendedLabel.InformationTypeId); SensitivityLabel createdLabel = CreateOrUpdateSensitivityLabel(client, resourceGroupName, serverName, databaseName, s_SchemaName, s_TableName, columnName, newLabel); AssertEqual(recommendedLabel, createdLabel); createdLabel = GetSensitivityLabel(client, resourceGroupName, serverName, databaseName, s_SchemaName, s_TableName, columnName); AssertEqual(recommendedLabel, createdLabel); sensitivityLabels = ListRecommendedSensitivityLabels(client, resourceGroupName, serverName, databaseName); Assert.NotNull(sensitivityLabels); Assert.Equal(recommendedLabelsCount - 1, sensitivityLabels.Count()); DeleteSensitivityLabel(client, resourceGroupName, serverName, databaseName, s_SchemaName, s_TableName, columnName); sensitivityLabels = ListRecommendedSensitivityLabels( client, resourceGroupName, serverName, databaseName); Assert.NotNull(sensitivityLabels); Assert.Equal(recommendedLabelsCount, sensitivityLabels.Count()); }
/// <summary> /// Gets the status of an Azure Sql Database Failover Group Force /// Failover operation. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Sql.LegacySdk.ISqlManagementClient. /// </param> /// <param name='operationStatusLink'> /// Required. Location value returned by the Begin operation /// </param> /// <returns> /// Response for long running Azure Sql Database Failover Group /// operation. /// </returns> public static Task <FailoverGroupForceFailoverResponse> GetFailoverGroupForceFailoverAllowDataLossOperationStatusAsync(this ISqlManagementClient operations, string operationStatusLink) { return(operations.GetFailoverGroupForceFailoverAllowDataLossOperationStatusAsync(operationStatusLink, CancellationToken.None)); }
/// <summary> /// Gets the status of an Azure Sql Database Failover Group Force /// Failover operation. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Sql.LegacySdk.ISqlManagementClient. /// </param> /// <param name='operationStatusLink'> /// Required. Location value returned by the Begin operation /// </param> /// <returns> /// Response for long running Azure Sql Database Failover Group /// operation. /// </returns> public static FailoverGroupForceFailoverResponse GetFailoverGroupForceFailoverAllowDataLossOperationStatus(this ISqlManagementClient operations, string operationStatusLink) { return(Task.Factory.StartNew((object s) => { return ((ISqlManagementClient)s).GetFailoverGroupForceFailoverAllowDataLossOperationStatusAsync(operationStatusLink); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }
public void TestDatabaseSensitivityLabels() { using (SqlManagementTestContext context = new SqlManagementTestContext(this)) { ResourceGroup resourceGroup = context.CreateResourceGroup(); ISqlManagementClient client = context.GetClient <SqlManagementClient>(); Server server = context.CreateServer(resourceGroup); client.FirewallRules.CreateOrUpdate(resourceGroup.Name, server.Name, "sqltestrule", new FirewallRule() { StartIpAddress = "0.0.0.0", EndIpAddress = "255.255.255.255" }); Database database = client.Databases.CreateOrUpdate(resourceGroup.Name, server.Name, SqlManagementTestUtilities.GenerateName(s_DatabaseNamePrefix), new Database() { Location = server.Location, }); Assert.NotNull(database); if (HttpMockServer.GetCurrentMode() != HttpRecorderMode.Playback) { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder() { DataSource = string.Format(server.FullyQualifiedDomainName, server.Name), UserID = SqlManagementTestUtilities.DefaultLogin, Password = SqlManagementTestUtilities.DefaultPassword, InitialCatalog = database.Name }; using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand(string.Format(@" CREATE TABLE {0} ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) );", s_TableName), connection); command.ExecuteNonQuery(); } SleepIfNeeded(); IPage <SensitivityLabel> sensitivityLabels = client.SensitivityLabels.ListByDatabase(resourceGroup.Name, server.Name, database.Name); Assert.NotNull(sensitivityLabels); Assert.NotEmpty(sensitivityLabels); Assert.DoesNotContain(sensitivityLabels, label => label.Name.Equals(s_Current)); int labelsCount = sensitivityLabels.Count(); SensitivityLabel sensitivityLabel = sensitivityLabels.First(); string columnName = sensitivityLabel.Id.Split("/")[16]; SensitivityLabel responseLabel = client.SensitivityLabels.CreateOrUpdate( resourceGroup.Name, server.Name, database.Name, s_SchemaName, s_TableName, columnName, new SensitivityLabel(labelName: sensitivityLabel.LabelName, informationType: sensitivityLabel.InformationType)); AssertEqual(sensitivityLabel, responseLabel); responseLabel = client.SensitivityLabels.Get(resourceGroup.Name, server.Name, database.Name, s_SchemaName, s_TableName, columnName, SensitivityLabelSource.Current); AssertEqual(sensitivityLabel, responseLabel); sensitivityLabels = client.SensitivityLabels.ListByDatabase(resourceGroup.Name, server.Name, database.Name); Assert.NotNull(sensitivityLabels); Assert.Equal(labelsCount, sensitivityLabels.Count()); Assert.Equal(labelsCount - 1, sensitivityLabels.Where(l => l.Name == "recommended").Count()); Assert.Contains(sensitivityLabels, label => label.Name.Equals(s_Current)); client.SensitivityLabels.Delete(resourceGroup.Name, server.Name, database.Name, s_SchemaName, s_TableName, columnName); sensitivityLabels = client.SensitivityLabels.ListByDatabase(resourceGroup.Name, server.Name, database.Name); Assert.NotNull(sensitivityLabels); Assert.Equal(labelsCount, sensitivityLabels.Count()); Assert.DoesNotContain(sensitivityLabels, label => label.Name.Equals(s_Current)); client.Databases.Delete(resourceGroup.Name, server.Name, database.Name); client.Servers.Delete(resourceGroup.Name, server.Name); } } }
internal AzureSqlManager() { SqlManagementClient = new SqlManagementClient(Dependencies.Subscription.Credentials, new Uri(Dependencies.Subscription.CoreEndpointUrl)); }
protected static void CreateFirewallRule(string resourceGroupName, string serverName, ISqlManagementClient client) { client.FirewallRules.CreateOrUpdate(resourceGroupName, serverName, s_FirewallRuleName, new FirewallRule() { StartIpAddress = s_StartIpAddress, EndIpAddress = s_EndIpAddress }); }
protected virtual IPage <SensitivityLabel> ListRecommendedSensitivityLabels(ISqlManagementClient client, string resourceGroupName, string serverName, string databaseName) { return(client.SensitivityLabels.ListRecommendedByDatabase( resourceGroupName, serverName, databaseName)); }