diff --git a/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/ExtractRequest.cs b/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/ExtractRequest.cs index 90bfe7d4..14e1bcb0 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/ExtractRequest.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/DacFx/Contracts/ExtractRequest.cs @@ -26,6 +26,11 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx.Contracts /// Gets or sets the target for extraction /// public DacExtractTarget ExtractTarget { get; set; } + + /// + /// Gets or sets whether permissions should be included in the extract + /// + public bool? IncludePermissions { get; set; } } /// diff --git a/src/Microsoft.SqlTools.ServiceLayer/DacFx/ExtractOperation.cs b/src/Microsoft.SqlTools.ServiceLayer/DacFx/ExtractOperation.cs index 59222fc5..ba5a32ec 100644 --- a/src/Microsoft.SqlTools.ServiceLayer/DacFx/ExtractOperation.cs +++ b/src/Microsoft.SqlTools.ServiceLayer/DacFx/ExtractOperation.cs @@ -26,7 +26,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx public override void Execute() { Version version = ParseVersion(this.Parameters.ApplicationVersion); - DacExtractOptions extractOptions = GetExtractOptions(this.Parameters.ExtractTarget); + DacExtractOptions extractOptions = GetExtractOptions(this.Parameters.ExtractTarget, this.Parameters.IncludePermissions); this.DacServices.Extract(this.Parameters.PackageFilePath, this.Parameters.DatabaseName, this.Parameters.ApplicationName, version, applicationDescription:null, tables:null, extractOptions:extractOptions, cancellationToken:this.CancellationToken); } @@ -41,9 +41,15 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx return parsedVersion; } - private DacExtractOptions GetExtractOptions(DacExtractTarget extractTarget) + private DacExtractOptions GetExtractOptions(DacExtractTarget extractTarget, bool? includePermissions) { DacExtractOptions extractOptions = new DacExtractOptions() { ExtractTarget = extractTarget }; + + if (includePermissions == true) + { + extractOptions.IgnorePermissions = false; + } + return extractOptions; } }