2012年11月8日木曜日

データのインポートがSQL Serverエージェントで実行できない

SQL Server で夜間の内に本番環境からテスト環境にデータをコピーしているんですが、
SQL Serverエージェントのジョブがコケていました。

ジョブの履歴でエラーを確認してみると、
説明: エラー 0x8009000B "指定された状態で使用するには無効なキーです。" により、保護された XML ノード "DTS:Password" の暗号化を解除できませんでした。この情報にアクセスする権限がない可能性があります。

とのこと。

原因は、SQL Server Management Studio の「データのインポート」機能を使ってパッケージを作り、SQL Server上に保存していたんですが、
パッケージの保存時にデータの暗号化がされていたためでした。

暗号化すると何かと面倒なので、ロールでアクセス制御するようにパッケージを作り直しました。


「データのインポート」でパッケージを作成し、保存時に、保護レベルを [アクセス コントロールをサーバー ストレージおよびロールに依存する (Rely on server storage and roles for access control)] に設定します。


[参考URL]
トラブルシューティング : SQL Server エージェントを使用した SSIS パッケージ実行
http://msdn.microsoft.com/ja-jp/library/dd440760(v=sql.100).aspx

暗号化したい人は、SQL Serverエージェントの作成時にパスワードを指定する必要があります。
[参考URL]
SQL Server エージェント ジョブを使用してパッケージを実行する方法
http://msdn.microsoft.com/ja-jp/library/ms139805(v=sql.90).aspx


SQL Server 2000のときは何も考えずにできたんですけどね。
世知辛い世の中です。

0 件のコメント:

コメントを投稿