8

SSIS パッケージには、いくつかの可能な値を持つ ProtectionLevel と呼ばれるプロパティがあります。利用可能な ProtectionLevel オプションの説明と、それらがパッケージ内でどのように動作するかの例を誰かが提供できますか? ProtectionLevel プロパティを使用する利点と欠点は何ですか。

ありがとう。

4

1 に答える 1

26

パッケージ保護レベルにはいくつかの種類があります。これは、接続文字列などにパスワードなどの機密情報含まれている可能性があることを SSIS が認識しているという考え方です。あなたがベンダーであり、あなたの製品が WhizBangPackage であり、魔法がどのように機能するかを人々に知られたくない場合、パッケージ自体に独自の情報が含まれている可能性があります。これらの理由やその他の理由から、MS には、基礎となる XML (これがすべて SSIS パッケージです) をディスクに書き込む方法の概念があります。

  • EncryptSensitiveWithUserKey これがデフォルト設定です。できることなら何でもセンシティブであると見なされます。パッケージが保存されると、VS は元の作成者の Active Directory アカウントの一部を使用して、接続文字列などを暗号化します。その接続文字列が SSPI を使用しているため、パスワードがない場合でも、基になる XML で接続文字列を暗号化します。パッケージが実行されると、SSIS は AD と通信してその情報の暗号化を解除します。一般に、パッケージの元の作成者が会社を離れ、AD アカウントが削除されるまで、すべてがうまく機能します。私たちが SQL Server 2005 で遭遇したのは、パッケージを実行している SQL エージェント ジョブがパッケージを復号化できないということでした。開発者がパッケージを開くと、インタラクティブ モードでは正常に実行されますが、非インタラクティブ モードでは失敗します。当面の解決策は、作成者をアクティブな AD アカウントを持つ誰かに更新し、再デプロイすることでした。これは現在/将来のリリースで修正される可能性がありますが、これは私の戦争の話です。

  • DontSaveSensive これは、これまで使用する必要があった唯一の設定です。SSIS は、保存時にパスワードのようなものを .dtsx ファイルに書き込みません。また、現在の設計セッションで保存した後も空白になり、すぐに検証エラーが発生することが私の経験でした. 特に、これにより、環境間でパッケージを移行する唯一の適切な方法である構成を使用していない限り、FTP タスクが PITA として機能します。構成を使用して、SSIS 接続マネージャーがパスワードをディスクにヒットすることなく「記憶」できるようにします。

  • EncryptSensitiveWithPassword AD アカウントを使用して機密ビットを暗号化する代わりに、開発者が提供するパスワードを使用するようになりました。これの欠点は、1 人以上のチームの場合です。共有パスワードがあり、複数の人がパスワードを共有すると、パスワードを持つ目的が無効になります。

  • EncryptAllWithPassword 機密ビットを暗号化するだけでなく、XML 全体をパスワードで暗号化します。前と同じ欠点、共有シークレット = シークレットなし。また、キーを紛失すると、パッケージを再作成することになります。

  • EncryptAllWithUserKey パスワードと同様に、作成者の AD アカウントをキーとしてファイル全体を暗号化します。上記と同じ欠点があります。そのアカウントはなくなり、パッケージのロックを解除するためのキーがありません。

  • ServerStorage - ローカル設定に関係なく、msdb カタログに展開すると仮定すると、パッケージはデータベースで暗号化されます。正直使ったことないです。msdb に展開しますが、機密データを非公開に保つために構成に依存しています。

于 2013-01-08T16:28:49.300 に答える