jdfagan
asked on
JScript runtime error: Permission denied when trying to access ActiveXObject from within a .js file that is invoked via a Stored Proc in SQL Server 2008
I can successfully invoke a .js JavaScript file from within a Stored Proc via xp_cmdshell @command:
SET @Command = @TargetDir + 'ImportDataToAmiBroker.cmd ';
EXECUTE xp_cmdshell @Command;
The problem appears to be particular lines of code within the JavaScript fail due to permissions denied. This .js file works fine from non administrator command prompt within Vista via command such as this: "cscript ImportDataToAmiBroker.js C:\Users\AmiBroker\data.qu iksilver quiksilver.format quiksilver.symbol-info.for mat C:\Users\TickData\AmiBroke r". It is just failing on this line of code (line 57) when being invoked via stored proc. Broker.Application refers to a valid app that can be controlled programmatically via OLE:
var ab = new ActiveXObject("Broker.Appl ication");
Here is the output I receive from SQL Server 2008 Management Studio
NULL
C:\Windows\system32>cd /d C:\Users\TickData\AmiBroke r
NULL
C:\Users\TickData\AmiBroke r>cscript ImportDataToAmiBroker.js C:\Users\AmiBroker\data.qu iksilver quiksilver.format quiksilver.symbol-info.for mat C:\Users\TickData\AmiBroke r
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.
NULL
Arguments:
Ami Database Folder = C:\Users\AmiBroker\data.qu iksilver
Quotes Format FileName = quiksilver.format
Symbol Info Format FileName = quiksilver.symbol-info.for mat
Import Data Folder = C:\Users\TickData\AmiBroke r
NULL
C:\Users\TickData\AmiBroke r\ImportDa taToAmiBro ker.js(57, 5) Microsoft JScript runtime error: Permission denied
NULL
NULL
Note, I have "Everyone" group added to C:\Users\TickData\ and C:\Users\AmiBroker\ folders with "Full Control" permissions. Subsequent child folders'/files' security permissions within these folders are inherited from parent.
Details of SQL Server 2008 Install:
Microsoft SQL Server Management Studio 10.0.2531.0
Microsoft Analysis Services Client Tools 10.0.1600.22
Microsoft Data Access Components (MDAC) 6.0.6002.18005
Microsoft MSXML 3.0 5.0 6.0
Microsoft Internet Explorer 8.0.6001.18783
Microsoft .NET Framework 2.0.50727.4016
Operating System 6.0.6002
SET @Command = @TargetDir + 'ImportDataToAmiBroker.cmd
EXECUTE xp_cmdshell @Command;
The problem appears to be particular lines of code within the JavaScript fail due to permissions denied. This .js file works fine from non administrator command prompt within Vista via command such as this: "cscript ImportDataToAmiBroker.js C:\Users\AmiBroker\data.qu
var ab = new ActiveXObject("Broker.Appl
Here is the output I receive from SQL Server 2008 Management Studio
NULL
C:\Windows\system32>cd /d C:\Users\TickData\AmiBroke
NULL
C:\Users\TickData\AmiBroke
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.
NULL
Arguments:
Ami Database Folder = C:\Users\AmiBroker\data.qu
Quotes Format FileName = quiksilver.format
Symbol Info Format FileName = quiksilver.symbol-info.for
Import Data Folder = C:\Users\TickData\AmiBroke
NULL
C:\Users\TickData\AmiBroke
NULL
NULL
Note, I have "Everyone" group added to C:\Users\TickData\ and C:\Users\AmiBroker\ folders with "Full Control" permissions. Subsequent child folders'/files' security permissions within these folders are inherited from parent.
Details of SQL Server 2008 Install:
Microsoft SQL Server Management Studio 10.0.2531.0
Microsoft Analysis Services Client Tools 10.0.1600.22
Microsoft Data Access Components (MDAC) 6.0.6002.18005
Microsoft MSXML 3.0 5.0 6.0
Microsoft Internet Explorer 8.0.6001.18783
Microsoft .NET Framework 2.0.50727.4016
Operating System 6.0.6002
.cmd file - Command shell script:
cd /d C:\Users\TickData\AmiBroker
cscript ImportDataToAmiBroker.js C:\Users\AmiBroker\data.quiksilver quiksilver.format quiksilver.symbol-info.format C:\Users\TickData\AmiBroker
.js file - JavaScript snippet:
alert("Arguments:\n" +
"Ami Database Folder = " + amiDatabaseFolder + "\n" +
"Quotes Format FileName = " + quotesFormatFileName + "\n" +
"Symbol Info Format FileName = " + symbolInfoFormatFileName + "\n" +
"Import Data Folder = " + importDataFolder + "\n"
);
var ab = new ActiveXObject("Broker.Application");
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.