private static void AssertEqual(SensitivityLabel expected, SensitivityLabel actual) { Assert.NotNull(actual); Assert.Equal(expected.LabelName, actual.LabelName); Assert.Equal(expected.InformationType, actual.InformationType); Assert.Equal(expected.Type, actual.Type); Assert.Equal(s_Current, actual.Name); }
private static SensitivityLabelModel ToSensitivityLabelModel(SensitivityLabel sensitivityLabel) { string[] idComponents = sensitivityLabel.Id.Split('/'); return(new SensitivityLabelModel { SchemaName = idComponents[12], TableName = idComponents[14], ColumnName = idComponents[16], SensitivityLabel = NullifyStringIfEmpty(sensitivityLabel.LabelName), SensitivityLabelId = NullifyStringIfEmpty(sensitivityLabel.LabelId), InformationType = NullifyStringIfEmpty(sensitivityLabel.InformationType), InformationTypeId = NullifyStringIfEmpty(sensitivityLabel.InformationTypeId) }); }
private static SensitivityLabelModel ToSensitivityLabelModel(SensitivityLabel sensitivityLabel) { string[] idComponents = sensitivityLabel.Id.Split('/'); return(new SensitivityLabelModel { SchemaName = idComponents[12], TableName = idComponents[14], ColumnName = idComponents[16], SensitivityLabel = sensitivityLabel.LabelName, SensitivityLabelId = sensitivityLabel.LabelId, InformationType = sensitivityLabel.InformationType, InformationTypeId = sensitivityLabel.InformationTypeId }); }
private static SensitivityLabelModel ToSensitivityLabelModel(SensitivityLabel sensitivityLabel) { var match = new global::System.Text.RegularExpressions.Regex("/schemas/(?<schemaName>.*)/tables/(?<tableName>.*)/columns/(?<columnName>.*)/sensitivityLabels/", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(sensitivityLabel.Id); return(new SensitivityLabelModel { SchemaName = match.Groups["schemaName"].Value, TableName = match.Groups["tableName"].Value, ColumnName = match.Groups["columnName"].Value, SensitivityLabel = NullifyStringIfEmpty(sensitivityLabel.LabelName), SensitivityLabelId = NullifyStringIfEmpty(sensitivityLabel.LabelId), InformationType = NullifyStringIfEmpty(sensitivityLabel.InformationType), InformationTypeId = NullifyStringIfEmpty(sensitivityLabel.InformationTypeId), Rank = ToSensitivityRank(sensitivityLabel.Rank) }); }
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> /// Creates or updates the sensitivity label of a given column /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group that contains the resource. You can obtain /// this value from the Azure Resource Manager API or the portal. /// </param> /// <param name='serverName'> /// The name of the server. /// </param> /// <param name='databaseName'> /// The name of the database. /// </param> /// <param name='schemaName'> /// The name of the schema. /// </param> /// <param name='tableName'> /// The name of the table. /// </param> /// <param name='columnName'> /// The name of the column. /// </param> /// <param name='parameters'> /// The column sensitivity label resource. /// </param> public static SensitivityLabel CreateOrUpdate(this ISensitivityLabelsOperations operations, string resourceGroupName, string serverName, string databaseName, string schemaName, string tableName, string columnName, SensitivityLabel parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, serverName, databaseName, schemaName, tableName, columnName, parameters).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); } } }
/// <summary> /// Creates or updates the sensitivity label of a given column in a Sql pool /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group. The name is case insensitive. /// </param> /// <param name='workspaceName'> /// The name of the workspace /// </param> /// <param name='sqlPoolName'> /// SQL pool name /// </param> /// <param name='schemaName'> /// The name of the schema. /// </param> /// <param name='tableName'> /// The name of the table. /// </param> /// <param name='columnName'> /// The name of the column. /// </param> /// <param name='parameters'> /// The column sensitivity label resource. /// </param> public static SensitivityLabel CreateOrUpdate(this ISqlPoolSensitivityLabels operations, string resourceGroupName, string workspaceName, string sqlPoolName, string schemaName, string tableName, string columnName, SensitivityLabel parameters) { return(operations.CreateOrUpdateAsync(resourceGroupName, workspaceName, sqlPoolName, schemaName, tableName, columnName, parameters).GetAwaiter().GetResult()); }
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)); }