Skip to content

Commit 3c85c14

Browse files
Merge remote-tracking branch 'azure-powershell/dev' into dev
2 parents 9718df2 + 4df2066 commit 3c85c14

File tree

8 files changed

+66
-342
lines changed

8 files changed

+66
-342
lines changed

setup/azurecmdfiles.wxi

Lines changed: 0 additions & 336 deletions
Large diffs are not rendered by default.

src/ResourceManager/Sql/Commands.Sql/Properties/Resources.Designer.cs

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/ResourceManager/Sql/Commands.Sql/Properties/Resources.resx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,4 +228,10 @@
228228
<data name="DeprecatedEventTypeUsed" xml:space="preserve">
229229
<value>The use of any of these event types is deprecated: DataAccess, SchemaChanges, DataChanges, SecurityExceptions, RevokePermissions</value>
230230
</data>
231+
<data name="DeprecatedCmdletUsageWarning" xml:space="preserve">
232+
<value>The {0} cmdlet is deprecated and will be removed in a future release.</value>
233+
</data>
234+
<data name="NewDataMaskingRuleIdIsNotValid" xml:space="preserve">
235+
<value>Rule Id cannot contain '&lt;,&gt;,+,=,#,*,%,&amp;,\,/,?' and cannot end with a '.'</value>
236+
</data>
231237
</root>

src/ResourceManager/Sql/Commands.Sql/Security/Cmdlet/DataMasking/BuildAzureSqlDatabaseDataMaskingRule.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,12 @@ public abstract class BuildAzureSqlDatabaseDataMaskingRule : SqlDatabaseDataMask
3232
/// <summary>
3333
/// Gets or sets the table name
3434
/// </summary>
35-
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "The table name.")]
36-
[ValidateNotNullOrEmpty]
37-
public string TableName { get; set; }
35+
public virtual string TableName { get; set; }
3836

3937
/// <summary>
4038
/// Gets or sets the column name
4139
/// </summary>
42-
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "The column name.")]
43-
[ValidateNotNullOrEmpty]
44-
public string ColumnName { get; set; }
40+
public virtual string ColumnName { get; set; }
4541

4642
/// <summary>
4743
/// Gets or sets the masking function - the definition of this property as a cmdlet parameter is done in the subclasses

src/ResourceManager/Sql/Commands.Sql/Security/Cmdlet/DataMasking/NewAzureSqlDatabaseDataMaskingRule.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
using System.Globalization;
2020
using System.Linq;
2121
using System.Management.Automation;
22+
using System.Text.RegularExpressions;
2223

2324
namespace Microsoft.Azure.Commands.Sql.Security.Cmdlet.DataMasking
2425
{
@@ -28,6 +29,20 @@ namespace Microsoft.Azure.Commands.Sql.Security.Cmdlet.DataMasking
2829
[Cmdlet(VerbsCommon.New, "AzureSqlDatabaseDataMaskingRule")]
2930
public class NewAzureSqlDatabaseDataMaskingRule : BuildAzureSqlDatabaseDataMaskingRule
3031
{
32+
/// <summary>
33+
/// Gets or sets the column name
34+
/// </summary>
35+
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "The column name.")]
36+
[ValidateNotNullOrEmpty]
37+
public override string ColumnName { get; set; }
38+
39+
/// <summary>
40+
/// Gets or sets the table name
41+
/// </summary>
42+
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true, HelpMessage = "The table name.")]
43+
[ValidateNotNullOrEmpty]
44+
public override string TableName { get; set; }
45+
3146
/// <summary>
3247
/// Gets or sets the masking function
3348
/// </summary>
@@ -52,6 +67,12 @@ protected override IEnumerable<DatabaseDataMaskingRuleModel> GetEntity()
5267
/// <returns>An error message or null if all is fine</returns>
5368
protected override string ValidateOperation(IEnumerable<DatabaseDataMaskingRuleModel> rules)
5469
{
70+
var ruleIdRegex = new Regex("^[^/\\\\#+=<>*%&:?]*[^/\\\\#+=<>*%&:?.]$");
71+
72+
if (!ruleIdRegex.IsMatch(RuleId)) // an invalid rule name
73+
{
74+
return string.Format(CultureInfo.InvariantCulture, Resources.NewDataMaskingRuleIdIsNotValid, RuleId);
75+
}
5576
if(rules.Any(r=> r.RuleId == RuleId))
5677
{
5778
return string.Format(CultureInfo.InvariantCulture, Resources.NewDataMaskingRuleIdAlreadyExistError, RuleId);

src/ResourceManager/Sql/Commands.Sql/Security/Cmdlet/DataMasking/SetAzureSqlDatabaseDataMaskingRule.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@ namespace Microsoft.Azure.Commands.Sql.Security.Cmdlet.DataMasking
2828
[Cmdlet(VerbsCommon.Set, "AzureSqlDatabaseDataMaskingRule")]
2929
public class SetAzureSqlDatabaseDataMaskingRule : BuildAzureSqlDatabaseDataMaskingRule
3030
{
31+
32+
/// <summary>
33+
/// Gets or sets the column name
34+
/// </summary>
35+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "The column name.")]
36+
public override string ColumnName { get; set; }
37+
38+
/// <summary>
39+
/// Gets or sets the table name
40+
/// </summary>
41+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "The table name.")]
42+
public override string TableName { get; set; }
43+
44+
3145
/// <summary>
3246
/// Gets or sets the masking function
3347
/// </summary>

src/ResourceManager/Sql/Commands.Sql/Security/Cmdlet/SecureConnection/DisableAzureSqlDatabaseDirectAccess.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using Microsoft.Azure.Commands.Sql.Properties;
1516
using Microsoft.Azure.Commands.Sql.Security.Model;
1617
using System.Management.Automation;
1718

@@ -41,6 +42,8 @@ public class DisableAzureSqlDatabaseDirectAccess : SqlDatabaseSecureConnectionCm
4142
/// <param name="model">A model object</param>
4243
protected override DatabaseSecureConnectionPolicyModel ApplyUserInputToModel(DatabaseSecureConnectionPolicyModel model)
4344
{
45+
46+
WriteWarning(string.Format(Resources.DeprecatedCmdletUsageWarning, "Disable-AzureSqlDatabaseDirectAccess"));
4447
model.SecureConnectionState = SecureConnectionStateType.Required;
4548
return model;
4649
}

src/ResourceManager/Sql/Commands.Sql/Security/Cmdlet/SecureConnection/EnableAzureSqlDatabaseDirectAccess.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using Microsoft.Azure.Commands.Sql.Properties;
1516
using Microsoft.Azure.Commands.Sql.Security.Model;
1617
using System.Management.Automation;
1718

@@ -41,6 +42,7 @@ public class EnableAzureSqlDatabaseDirectAccess : SqlDatabaseSecureConnectionCmd
4142
/// <param name="model">A model object</param>
4243
protected override DatabaseSecureConnectionPolicyModel ApplyUserInputToModel(DatabaseSecureConnectionPolicyModel model)
4344
{
45+
WriteWarning(string.Format(Resources.DeprecatedCmdletUsageWarning, "Enable-AzureSqlDatabaseDirectAccess"));
4446
model.SecureConnectionState = SecureConnectionStateType.Optional;
4547
return model;
4648
}

0 commit comments

Comments
 (0)