在我的應用程序中,我正在將數據讀取到數據庫,然後我想要啓動IntegrationSerivces以將數據導入多維數據集。這是我用來從SSMS啓動它的命令:如何從我的應用程序在ASP.NET MVC中運行xp_cmdshell
execute master..xp_cmdshell 'dtexec /DTS "\MSDB\B_Costs" /SERVER . /CHECKPOINTING OFF /REPORTING V'
但是如何在我的應用程序中使用它?我在開始時出現此錯誤:
對象'xp_cmdshell',數據庫'mssqlsystemresource',模式'sys'上EXECUTE權限被拒絕。
而且使用後這樣的命令:
GRANT EXECUTE ON xp_cmdshell TO [IIS APPPOOL\DefaultAppPool]
我有另一個錯誤:
xp_cmdshell的代理帳戶信息無法檢索或無效。驗證「## xp_cmdshell_proxy_account ##」憑證是否存在並且包含有效信息。
而當我檢查我沒有證書數據庫引擎 - >安全 - >證書。
我想用這樣的命令:
EXEC sp_xp_cmdshell_proxy_account 'IIS APPPOOL\DefaultAppPool', 'password'
但我不知道我應該怎麼寫在「密碼」。有什麼建議麼?
這是我CubeController:
public ActionResult Index()
{
string sql = "execute master..xp_cmdshell 'dtexec /DTS \"\\MSDB\\B_Costs\" /SERVER . /CHECKPOINTING OFF /REPORTING V'";
try
{
MyEntity.Database.ExecuteSqlCommand(sql);
}
catch (Exception e)
{
string error = "There was an error: <br />" + e.Message;
TempData["Message"] = error;
}
return RedirectToAction("Index","Home");
}
我寫道:CREATE USER [IIS APPPOOL \ DefaultAppPool] FOR LOGIN [IIS APPPOOL \ DefaultAppPool];'我有錯誤:*用戶,組或角色'IIS APPPOOL \ DefaultAppPool'已存在於當前數據庫中* – Monic 2014-09-28 09:19:09
然後只需運行 就可以在xp_cmdshell TO [IIS APPPOOL \ DefaultAppPool]上執行GRANT EXECUTE; 結果是什麼? – Hatjhie 2014-09-28 09:29:05
對不起,我用我的問題撤銷而不是授予。錯誤如上,有問題。 – Monic 2014-09-28 09:32:26