インポート エクスポート (32 ビット) ツールを使用して作成した SSIS パッケージがあります。パッケージ実行ユーティリティを使用してパッケージを手動で実行すると、パッケージは問題なく正常に実行されました。ただし、SSMS で Job Agent を介してパッケージを実行しようとすると、エラーが発生し続けます。私が得る主なエラーは次のようです:
保護された XML ノード "DTS:Password" を復号化できませんでした。エラー 0x8009000B "キーは指定された状態での使用には無効です" この情報にアクセスする権限がない可能性があります。このエラーは、暗号化エラーがある場合に発生します。正しいキーが使用可能であることを確認します。
SQL Server 2008 R2 を使用しています。
このエラーについてある程度調査しましたが、パッケージの保護レベルと関係があると思います。最も理にかなった構成を試したような気がしますが、どれもうまくいかないようです。オプションは次のとおりです。
- ユーザーキーで機密データを暗号化する
- 機密データを保存しない
- 機密データをパスワードで暗号化する
- ユーザーキーですべてのデータを暗号化
- すべてのデータをパスワードで暗号化
- アクセス制御をサーバー ストレージとロールに依存する
私は SQL Server 認証を使用することを好むため、ここでは最後のオプション (サーバー ストレージに依存する...) を使用する必要があるように感じます。SQL Server インポートおよびエクスポート ウィザードの [宛先の選択] ウィンドウで SQL Server 認証を使用します。同様に、ジョブ ステップ プロパティの [全般] タブで SSMS でジョブ エージェントを作成するときに、同じユーザー名とパスワードでこれを使用します。SSMS の外部で動作する場合でも、SSMS で使用しているユーザーに追加する必要があるものがある可能性はありますか?
他に影響があるかもしれないと思ったのは、インポートおよびエクスポート ツールの [列マッピング] ウィンドウで [宛先テーブルを削除して再作成する] オプションをオンにしたことです。Job Agent を実行する前に、ストアド プロシージャを使用してテーブルを削除していましたが、ある時点で ti が機能していたように感じます。
繰り返しますが、私を最も困惑させているのは、「SQL Server Execute Utility Package」ツールを使用して手動で実行しても問題がないことです。
上記のウィンドウのいくつかの画像が参考になる場合は含めました。