私のアプリでは、データをデータベースに読み取っています。次に、統合サービスを開始してデータをキューブにインポートしたいと考えています。これは、SSMS から起動するために使用するコマンドです。
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##」資格情報が存在し、有効な情報が含まれていることを確認してください。
確認したところ、 Database Engine -> Security -> Credentialsに資格情報がありません。
次のようなコマンドを使用したかった:
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");
}