パッケージの保護レベルの設定

Business Intelligence Development Studio で初めて SQL Server 2005 Integration Services (SSIS) パッケージを開発するときは、保護レベルを設定します。パッケージの保護レベルは、後でパッケージを配置するとき、SQL Server Management Studio の Integration Services からインポートまたはエクスポートするとき、または Business Intelligence Development Studio から SQL Server、SSIS パッケージ ストア、またはファイル システム サービスにコピーするときに、更新できます。たとえば、作成したパッケージをユーザー キー保護レベル オプションの 1 つを指定してコンピュータに保存している場合、通常はそのパッケージを他のユーザーに渡すときに保護レベルを変更します。そのままでは、相手ユーザーがパッケージを開くことができません。

Integration Services で提供される保護レベルを次の表に示します。かっこ内の値は、DTSProtectionLevel からの値です。これらの値は、Business Intelligence Development Studio でパッケージを操作するときにパッケージ オブジェクトのプロパティを構成するために使用する [プロパティ] ウィンドウに表示されます。

保護レベル 説明

[機微なデータを保存しない] (DontSaveSensitive)

保存するときに、パッケージ内の機微な情報を出力しません。この保護レベルでは暗号化は行われません。その代わり、「機微」とマークされたプロパティは、パッケージと一緒に保存されません。その結果、他のユーザーが機微なデータを利用することはできません。異なるユーザーがパッケージを開いた場合は、機微な情報が空白と置き換えられます。したがって、ユーザーは、機微な情報を指定する必要があります。

[すべてのデータをパスワードで暗号化する] (EncryptAllWithPassword)

パスワードを使用してパッケージ全体を暗号化します。暗号化処理には、パッケージを作成またはエクスポートしたときにユーザーによって指定されたパスワードが使用されます。パッケージを SSIS デザイナで開いたり、dtexec コマンド プロンプト ユーティリティを使用して実行したりするには、ユーザーはパッケージ パスワードを指定する必要があります。パスワードを指定しないと、パッケージにアクセスしたりパッケージを実行したりできません。

[すべてのデータをユーザー キーで暗号化する] (EncryptAllWithUserKey)

ユーザー プロファイルに基づいたキーを使用してパッケージ全体を暗号化します。同じプロファイルを使用している同じユーザーだけがパッケージを読み込むことができます。暗号化処理には、パッケージを作成またはエクスポートしたユーザーに基づくキーが使用されます。パッケージを SSIS デザイナで開いたり、dtexec コマンド プロンプト ユーティリティを使用して実行したりできるのは、パッケージを作成またはエクスポートしたユーザーだけです。

[機微なデータをパスワードで暗号化する] (EncryptSensitiveWithPassword)

パスワードを使用して、パッケージ内の機微な情報だけを暗号化します。暗号化処理には、DPAPI が使用されます。機微なデータはパッケージの一部として保存されます。ただし、このデータは、パッケージを作成またはエクスポートしたときに現在のユーザーによって指定されたパスワードを使用して暗号化されます。パッケージを SSIS デザイナで開くには、ユーザーはパッケージ パスワードを指定する必要があります。ユーザーがパスワードを指定しなかった場合、パッケージは機微なデータが取り除かれて開かれます。したがって、現在のユーザーは、機微なデータの新しい値を指定する必要があります。パスワードを指定しないでパッケージを実行しようとした場合、パッケージの実行は失敗します。パスワードとコマンド ラインの実行の詳細については、「dtexec ユーティリティ」を参照してください。

[機微なデータをユーザー キーで暗号化する] (EncryptSensitiveWithUserKey)

現在のユーザーに基づくキーを使用して、パッケージ内の機微な情報のみを暗号化します。同じプロファイルを使用している同じユーザーだけがパッケージを読み込むことができます。異なるユーザーがパッケージを開いた場合は、機微な情報が空白と置き換えられます。したがって、現在のユーザーは、機微なデータの新しい値を指定する必要があります。ユーザーがパッケージを実行しようとした場合、パッケージの実行は失敗します。暗号化処理には、DPAPI が使用されます。

[暗号化をサーバー ストレージに依存する] (ServerStorage)

SQL Server データベース ロールを使用して、パッケージ全体を保護します。このオプションは、パッケージを SQL Server msdb データベースに保存する場合にのみサポートされます。このオプションは、Business Intelligence Development Studio からパッケージをファイル システムに保存するときはサポートされません。

パスワードを使用してパッケージを暗号化するパッケージ保護レベルでは、パスワードも指定する必要があります。パスワードを使用しないレベルから使用するレベルに保護レベルを変更すると、パスワードを指定するよう要求されます。

パッケージ保護レベルに採用されている暗号化処理は、マイクロソフトの暗号化 API (Crypto API) の一部である Microsoft Data Protection API (DPAPI) を使用して実行されます。

Integration Services では、パスワードを使用する保護レベルに対しては、.NET Framework クラス ライブラリ (FCL) で提供される、キーの長さが 192 ビットの Triple DES 暗号アルゴリズムを使用しています。

ユーザー キーを使用する保護レベルに対しては、Integration Services では DPAPI 標準を使用しています。DPAPI の詳細については、MSDN ライブラリ (https://msdn.microsoft.com/library) を参照してください。

[機微なデータを保存しない] (DontSaveSensitive) 保護レベルを使用した場合、パッケージ内の機微な情報は保存されません。

すべての値について、機微な情報は次のように定義されます。

  • 接続文字列のパスワード部。すべてを暗号化するオプションを選択した場合は、接続文字列全体が機微であると見なされます。
  • タスクによって生成され、「機微」とタグ付けされている XML ノード。XML ノードのタグ付けは Integration Services によって制御されるので、ユーザーが変更することはできません。
  • 「機微」とマークされている任意の変数。変数のマーク付けは、Integration Services によって制御されます。

msdb データベースに保存されるパッケージは、固定データベースレベル ロールを使用して保護することもできます。Integration Services には、パッケージに権限を割り当てるための、db_dtsadmindb_dtsltduser、および db_dtsoperator の 3 つの固定データベース レベル ロールがあります。詳細については、「Integration Services のロール」および「データベース レベルのロール」を参照してください。

参照

処理手順

パッケージのインポートおよびエクスポート
Integration Services サービスを使用してパッケージをインポートする方法
Integration Services サービスを使用してパッケージをエクスポートする方法

概念

Integration Services パッケージ
Integration Services のセキュリティに関する注意点

ヘルプおよび情報

SQL Server 2005 の参考資料の入手