2

ネットワークドライブ上のCSVファイルにいくつかのテーブルを転送するSSISパッケージがあります。それは私のコンピュータから手動で正常に動作します。サーバーのMSDBデータベースに保存し、そこから実行すると正常に実行されますが、MSDBからSSISパッケージを実行する1つのステップを持つジョブを作成すると、CSVファイル名が見つからないと表示されません。

私は昨日一日中過ごしました。これは、ジョブで使用されているログオンクレデンシャルに関係するアクセス許可の問題を意味することを理解しています。ジョブの所有者はdomain/myuseridであることが示され、ステップのプロパティは、私のユーザー名でWindows認証を使用していることを示しています。問題は、私がこのフォルダにアクセスできることを知っていることです。

エラーログの最初の行には、「ユーザーとして実行:servername\SYSTEM」と記載されています。そのため、ユーザー「SYSTEM」がファイルをロードしたいネットワークフォルダにアクセスできることを確認しましたが、それでも同じエラーが発生します。

コマンドラインは、@ command = N'/ SQL "\ SSIS package name" / SERVER servername / CHECKPOINTING OFF /REPORTINGE'のようになります。

編集:SQL Serverエージェントのジョブアカウントの問題を見つけました。誰かがジョブの実行先を尋ね、marc_sが「実際にはその答えを見つけることができないようです。私のジョブは通常データベース内のものを選択して更新するためです。 、特定のステップで他のアカウントを指定しない限り、デフォルトで「所有者」アカウントが使用されると想定します。」

これはまた、アクセス権を持つ私のログオン情報を使用していると私に信じさせます

4

2 に答える 2

4

ここで思いついたベストプラクティスは、SSISのドメインアカウントを作成してから、SQLジョブでSSISパッケージを実行するために使用されるSQLServerでプロキシを設定することです。

于 2011-06-24T20:26:26.903 に答える
2

servername \ SYSTEMアカウントはローカルアカウントであるため、他のサーバーのネットワークフォルダにアクセスすることはできません。

おそらく、アクセス権を持つある種のドメインアカウントとしてこれを実行したいと思うでしょう。

通常、これはSQL Serverエージェントになるため、コントロールパネルの[サービス]リストを確認し、エージェントを実行しているアカウントを確認し、必要に応じて適切なアカウントに変更します。

ただし、これは結果に影響を与える可能性があるため、他のジョブが実行されていることに注意してください。

于 2011-06-24T20:19:10.767 に答える