1

SQL エージェント ジョブから呼び出される DTSX パッケージがあります。

DTSX パッケージは、固定の場所 (e:\mssql\myfile.txt など) にあるファイルを参照します。

ほとんどのマシンにはこの場所が存在しますが、一部のマシンではこれを手動でマッピングする必要があります (これは問題ではありません - パッケージ構成を使用してファイルの場所を動的に取得する方が良いことはわかっていますが、ここではオプションではありません -とにかく何が起こっているのか理解したい)

特定のユーザー (例: myuser )として実行するようにエージェント サービスをセットアップしました。

このユーザーとしてログオンしてディレクトリをマップし、dtsx パッケージを直接実行すると、すべてうまくいきます。

SQL エージェント ジョブを使用してパッケージを実行すると、ファイルが見つかりません。ドライブをマップするエージェント ジョブにコマンド ライン ジョブ ステップを追加すると、次のようになります。

net use e: \\svr\location

次に、すべての作品ファイルも。

では、バックグラウンドで何が起こっているのでしょうか? このユーザーとしてログインしている場合でも、SQL エージェント ユーザーがドライブ マッピングを要求するのはなぜですか。

4

1 に答える 1

2

問題は、ログインした myuser で SQL エージェントが実行されていないことです。これは、SQL ジョブ履歴のエラー メッセージで確認できます。

サービスに移動し、SQL エージェント サービスに変更して、サービス アカウント myuser で実行します。

また、svr フォルダーを共有して myuser のアクセス許可を取得することもお勧めします。この方法では、フォルダー パスを気にする必要があります。

于 2011-05-17T20:48:07.503 に答える