0

私のアプリでは、データをデータベースに読み取っています。次に、統合サービスを開始してデータをキューブにインポートしたいと考えています。これは、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");
}
4

1 に答える 1