サーバーAとサーバーBの2つのサーバー間でファイルを手動でコピーでき、どちらの側のフォルダーにもアクセス許可があります。
ファイルシステムタスクを使用してファイルをコピーしています。
ソースと宛先がサーバー内にある場合、パッケージはVisualStudioとSSISDBで正常に機能します。
ソースと宛先が異なるサーバーにある場合、パッケージはVisual Studioで正常に機能しますが、パッケージはSSISDBで失敗します。アクセスが拒否されたと言っています。私のアカウントはSSISDBにマップされています。
この問題を解決するためのアイデア。
パッケージは、SQLServerエージェントJoBを使用して正常に実行されます。ジョブはプロキシアカウントを介して実行されます。
プロキシアカウントを介して実行するようにパッケージを構成する方法はどれでも。
エラースクリーンショット
まず、@ Nick.McDermaidは、コメントに非常に役立つリンクを提供して、詳細を確認しました Integration Services Catalogはパッケージの実行にどのユーザー資格情報を使用しますか?
検索した後、この問題を引き起こす可能性のある多くの問題があるので、私はあなたの問題を解決できる多くの解決策を提供します。
1。 SQL Serverアカウントのアクセス許可
指定されたパスでログインしているアカウントに読み取りと書き込みのアクセス許可を追加します
2。ネットワークアカウントにWindows認証を追加します
ネットワークアカウント(SQLサーバーエージェントでプロキシとして使用される)のWindows認証ログインを追加し、それを使用してパッケージを実行できます。
これはあなたのケースではありませんが、これらの情報が役立つかもしれません
1。 SQL Serverアカウントのアクセス許可
指定したパスの次のアカウントに読み取りと書き込みのアクセス許可を追加します。
NT SERVICE\SQLSERVERAGENT
NT SERVICE\MSSQLSERVER
2。プロキシの設定
SSISパッケージのプロキシを設定し、そのプロキシアカウントを使用してジョブを実行できます。
詳細については、次のリンクのいずれかを参照してください。
3。ネットワークドライブをSQLServerインスタンスにマップします
一部の記事では、(OSではなく)SQL Serverで使用しているネットワークドライブをマップすることを提案しています。詳細については、次のリンクのいずれかを参照してください。
4。 SysAdminロールの追加
次のアカウントにSysAdminロールを追加します。
NT SERVICE\SQLSERVERAGENT
NT SERVICE\MSSQLSERVER
ドメインアカウントのMSDBのアクセス許可を確認しましたか。私はこれらの手順に従います。私は同様の問題を抱えています
1)パッケージをサーバーにデプロイします(すでに行っているように)
2)パッケージがロードされ、SSISDBのIntegrationServicesカタログで利用可能であることを確認します
3)プロジェクトを再デプロイして、試してください。
これらがすべて正常で、SSISDBでまだパッケージが失敗する場合は、CMD(DTEXUI /ファイル/「パッケージパス」)を使用してWindowsスケジューラタスクを試してみます。 Windowsスケジューラについて話すことが適切でない場合は、お詫び申し上げます。
投稿された回答とコメントには、多くの推測と赤いニシンがあります。 SQLエージェントプロキシ、マップされたドライブ、MSDB、またはsysadminとは何の関係もありません。最終的に質問から収集したように、SQLエージェントでの実行は問題ありません。問題が発生するのは、IntegrationServicesカタログを右クリックしてインタラクティブに実行したときだけです。
質問の最後の部分は、根本原因がここで理解されていることを示しています。
プロキシアカウントを介して実行するようにパッケージを構成する方法はどれでも。
インタラクティブユーザー(カタログを右クリックするユーザー)には権限がないため、権限を持つ別のユーザーとしてカタログから実行する方法が必要です。
確認のために:SSISログでコンテキストの表示をクリックすると、実行されたユーザーが表示されます。これは、SQLエージェントからの正常なパッケージ実行とは異なります。
カタログの実行メニューと構成メニュー、およびcreate_execution
spを調べましたが、別のユーザーとして実行する方法がわかりません。
私は2つの提案があります:
しばらく前に同様の問題が発生しました。ファイルをロードする前に、サーバーからSSISを実行しているサーバーにファイルをコピーする必要がありました。
パッケージがローカルディレクトリのみを使用するように構成されている場合は、毎回機能しました。手動で起動した場合は、別のマシンで動作しました。しかし、SQL Agent +さまざまなマシンに関しては、失敗しました。
SQLログをクロールし、Visual Studioで少しスクリプトを作成することで、ローカルアカウントとADアカウントに問題があることがわかりました。
私はこの問題を次のように解決しました:
これは、ほぼ1年以来、問題なく毎日機能しています。