Access is denied when executed with include-objects argument
ackris opened this issue · 1 comments
Hello Everyone
I am pretty excited about using mssql-scripter
, and it is working fine. Recently I have come across this issue where the inclusion of --include-objects
argument is causing Access if denied to fs path
.
But the utility is creating scripts if I execute the utility without --include-objects
argument to the same fs path.
Please find below the outputs.
With include-objects args...
C:\Users\abcd\eclipse-workspace\Utilities\Windows>mssql-scripter -S ABCD\SQLEXPRESS -d cmsdb -U admin -P admin@123 --file-path C:\MyCave\iso\SDG\Integra\Intest\sqlscriptgen --include-objects dbo.patchlog_details
Scripting request: 512bea1c-e6ea-40ea-89b9-3f73b96ab8d0 encountered error: File writing exception.
Error details: Microsoft.SqlServer.Management.Smo.ScriptWriterException: File writing exception. ---> System.UnauthorizedAccessException: Access to the path 'C:\MyCave\iso\SDG\Integra\Intest\sqlscriptgen' is denied.
at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at Microsoft.SqlServer.Management.Smo.NetCoreHelpers.CreateFileStream(String path, Boolean appendToFile)
at Microsoft.SqlServer.Management.Smo.SingleFileWriter.Init(String path, Boolean appendToFile, Encoding encoding)
--- End of inner exception stack trace ---
at Microsoft.SqlServer.Management.Smo.SingleFileWriter.Init(String path, Boolean appendToFile, Encoding encoding)
at Microsoft.SqlServer.Management.Smo.SingleFileWriter..ctor(String path, Boolean appendToFile, Encoding encoding)
at Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptGenerator.GetScriptWriter(ScriptOutputOptions outputOptions)
at Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptGenerator.DoScript(ScriptOutputOptions outputOptions)
at Microsoft.SqlServer.Management.SqlScriptPublish.SqlScriptPublishModel.GenerateScript(ScriptOutputOptions outputOptions)
at Microsoft.SqlTools.ServiceLayer.Scripting.ScriptingScriptOperation.Execute() in D:\repos\sqltoolsservice\src\Microsoft.SqlTools.ServiceLayer\Scripting\ScriptingScriptOperation.cs:line 62
Now without include-options argument
C:\Users\abcd\eclipse-workspace\Utilities\Windows>mssql-scripter -S ABCD\SQLEXPRESS -d cmsdb -U admin -P admin@123 --file-path C:\MyCave\iso\SDG\Integra\Intest\sqlscriptgen --file-per-object --ansi-padding --display-progress --include-dependencies
Scripting request: f4f8e0d6-0fc7-44fe-9c2d-4a94b51fb972 plan: 8 database objects
Scripting progress: Status: Progress Progress: 0 out of 8 objects scripted
Scripting progress: Status: Progress Progress: 0 out of 8 objects scripted
Scripting progress: Status: Progress Progress: 0 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 1 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 2 out of 8 objects scripted
Scripting progress: Status: Progress Progress: 2 out of 8 objects scripted
Scripting progress: Status: Progress Progress: 2 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 3 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 4 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 5 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 6 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 7 out of 8 objects scripted
Scripting progress: Status: Completed Progress: 8 out of 8 objects scripted
Is this a bug?
I am the admin of FS and DB.
Ideally the utility must create scripts if include-objects is also specified.
Regards
Kris
Hi Everyone
I have tried to run the utility by adding --include-objects argument with --file-per-object arg.
It is now creating a script.
C:\Users\abcd\eclipse-workspace\Utilities\Windows>mssql-scripter -S ABCD\SQLEXPRESS -d cmsdb -U admin -P admin@123 --file-path C:\MyCave\iso\SDG\Integra\Intest --file-per-object --ansi-padding --display-progress --include-objects dbo.selectUsers_SP
Scripting request: d20a3ebc-9793-4c87-817c-635d9880f7e6 plan: 1 database objects
Scripting progress: Status: Completed Progress: 1 out of 1 objects scripted
Scripting request: d20a3ebc-9793-4c87-817c-635d9880f7e6 completed
warning: Target directory C:\MyCave\iso\SDG\Integra\Intest was not empty.
I consider it a close. But I will open it again if it relapses.
Regards
Kris