共有でホストされているファイルを読み取り、その内容をデータベーステーブルにインポートしようとしている非常に基本的なSSISパッケージがあります。SSIS内で手動で実行すると、パッケージは正常に実行されます。ただし、SQLエージェントジョブを設定して実行しようとすると、次のエラーが発生します。
ユーザーとして実行:DOMAIN\UserName。Microsoft(R)SQL Server Execute Package Utilityバージョン9.00.3042.00(64ビット用)Copyright(C)MicrosoftCorp1984-2005。全著作権所有。
開始:10:14:17 AMエラー:2010-05-03 10:14:17.75コード:0xC001401Eソース:DataImport接続マネージャー "Data File Local"
説明:ファイル名 "\ 10.1.1.159 \ llpf \ datafile.dat"接続で指定されたものが無効でした。終了エラーエラー:2010-05-03 10:14:17.75コード:0xC001401D
ソース:DataAnimalImport
説明:接続「データファイルローカル」の検証に失敗しました。終了エラーDTExec:パッケージの実行でDTSER_FAILURE(1)が返されました。開始:10:14:17 AM終了:10:14:17 AM経過:0.594秒。パッケージの実行に失敗しました。ステップは失敗しました。
これは、それが権限の問題であると私に信じさせますが、それを修正するために私が行ったすべての試みは失敗しました。
私がこれまでに試したこと:
SQLエージェントアカウント(DOMAIN \ SqlAgent)として実行-同じエラーが発生します。DOMAIN \ SqlAgentには、共有ファイルとアップロードされたファイルの両方に対する「フルコントロール」権限があります。
別のアカウントの資格情報(DOMAIN \ Account)を使用してプロキシアカウントを設定すると、同じエラーが発生します。上記のように、「フルコントロール」権限がそのアカウントへの共有に対して与えられました。
「全員」に共有に対するフルコントロールのアクセス許可を与えました(一時的に!)。同じエラーが発生しました。
ファイルをローカルパスに手動でコピーし、SQLエージェントアカウントでテストしました。正しく動作しました。
最初にリモートでホストされているファイルをローカルパスにコピーし、次にDTSパッケージにローカルファイルを参照させるActiveXスクリプトタスクを追加しました。スクリプトを実行しようとすると、(SSIS標準でも)完全に説明のつかないエラーが発生しました。
自分の個人アカウントの資格情報を使用してプロキシアカウントを設定します-正しく機能しました。ただし、私のアカウントにはパスワードポリシーが設定されているため、これは許容できる解決策ではありません。また、一般的にこのように設定するのは悪い習慣です。
何か案は?私はまだそれが許可の問題であると確信しています。しかし、私がさまざまな検索から読んだことは、多かれ少なかれ、共有に対する実行アカウントのアクセス許可を与えることは機能するはずだと言っています。ただし、ここではそうではありません(共有にアクセス許可を設定しているときに、あいまいなものが欠落している場合を除きます)。