Integration Services のセキュリティに関する注意点

SQL Server 2005 Integration Services (SSIS) は、豊富かつ柔軟なセキュリティ環境を提供できるように、複数の階層でセキュリティを構成します。Integration Services のセキュリティでは、パッケージ レベルのプロパティ、SQL Server データベース ロール、オペレーティング システム権限、およびデジタル署名を組み合わせて使用します。

SQL Server 2005 Integration Services (SSIS) では、次のセキュリティ機能を使用して、クライアントおよびサーバーのセキュリティを実装します。

  • パッケージの ProtectionLevel プロパティを設定して、機微なデータを暗号化によって保護するか、パッケージの保存前に削除するかを指定します。
  • パッケージの ProtectionLevel プロパティおよび PackagePassword プロパティを設定して、パッケージの全体または一部をパスワードまたはユーザー キーを使用して暗号化し、保護します。
  • SQL Server データベース レベルのロールを使用して、パッケージへのアクセスを制御します。
  • SQL Server Management Studio でファイルがある場所を保護し、パッケージへのアクセスを制限して、動作環境のセキュリティを確保します。
  • パッケージに証明書で署名し、パッケージの整合性を保証します。

機微なデータ

Integration Services は、パッケージ内の機微なデータの保護をサポートします。通常、機微とされるプロパティにはパスワードや接続文字列などの情報が含まれます。Integration Services では、これらのプロパティの属性は機微と設定され、変更できません。カスタム タスク、接続マネージャ、またはデータ フロー コンポーネントを記述する場合、Integration Services で機微として扱うプロパティを指定できます。

Integration Services は自動的に機微なプロパティを検出し、指定されたパッケージ保護レベルに応じてこれらのプロパティを処理します。たとえば、機微な情報をパスワードで暗号化する保護レベルを使用するパッケージでは、機微とされたすべてのプロパティの値が暗号化されます。

パッケージの保護レベル

パッケージの保護レベルを設定して、パッケージのプロパティ値の機密性を保つために、パッケージを暗号化できます。パッケージには ProtectionLevel プロパティがあり、パッケージで必要な保護レベルに応じて設定できます。たとえば、チーム開発環境では、パッケージに関する作業を行っているチーム メンバが知っているパスワードを使用して、パッケージを暗号化できます。詳細については、「パッケージの保護レベルの設定」を参照してください。

詳細については、「Integration Services パッケージ」および「パッケージのプロパティの設定」を参照してください。

データベース レベルのロール

Integration Services には、パッケージへのアクセスを制御するために、db_dtsadmindb_dtsltduser、および db_dtsoperator というデーターベース レベルの 3 つの固定ロールがあります。各パッケージにはリーダー ロールおよびライタ ロールを関連付けることができます。また、Integration Services パッケージで使用するデータベース レベルのカスタム ロールを定義することもできます。ロールは、SQL Server のインスタンス内の msdb データベースに保存されたパッケージにのみ実装可能です。

詳細については、「Integration Services のロール」を参照してください。

パッケージの格納

Integration Services パッケージは、.dtsx というファイル名拡張子をつけて XML ファイルとしてファイル システムに保存するか、SQL Server 2005 のインスタンス内の msdb に保存できます。

パッケージを msdb に保存すると、サーバー レベル、データベース レベル、およびテーブル レベルのセキュリティが得られます。SQL Server 2005 パッケージは sysdtspackages90 テーブルに格納され、SQL Server 2000 パッケージは sysdtspackages テーブルに格納されます。また、sysdtspackages90sysdtspackages に保存されたパッケージは、msdb のバックアップ時に自動的にバックアップされます。さらに、sysdtspackages90 テーブルに保存された SQL Server 2005 パッケージは、データベース レベルのロールによって保護されます。

パッケージを msdb に格納しない場合は、パッケージ ファイルが格納されているファイル システムのフォルダのセキュリティを確認してください。

詳細については、「パッケージの保存」を参照してください。

パッケージ構成の格納

パッケージの構成は、ファイル システムまたは SQL Server 2005 データベースのテーブルに保存できます。構成は、msdb データベースだけでなく、すべての SQL Server 2005 データベースに保存できるため、パッケージ構成のリポジトリとして機能するデータベースを指定できます。また、構成を格納するテーブルの名前を指定すると、Integration Services は正しい構造のテーブルを自動的に作成します。

構成をテーブルに保存すると、サーバー レベル、データベース レベル、およびテーブル レベルのセキュリティが得られます。さらに、SQL Server に保存した構成は、データベースのバックアップ時に自動的にバックアップされます。

構成を SQL Server に格納しない場合は、パッケージ構成ファイルが格納されているファイル システムのフォルダのセキュリティを確認してください。

詳細については、「パッケージ構成」を参照してください。

Integration Services フォルダ

SQL Server Management Studio は、実行中のパッケージを一覧表示する際に SQL Server を使用します。不正なユーザーがローカルまたはリモートに格納されているパッケージを列挙したり、プライベート情報を取得したりできないように、SQL Server サービスを実行するコンピュータへのアクセスを制限することが重要です。詳細については、「実行中のパッケージへのアクセスの保護」を参照してください。

パッケージで使用するファイル

構成、チェックポイント、およびログ記録を使用するように構成されているパッケージでは、パッケージの外部に格納される情報が生成されます。この情報は重要な場合があり、保護する必要があります。チェックポイント ファイルはファイル システムにしか保存できませんが、構成とログはファイル システムまたは SQL Server データベース テーブルに保存できます。SQL Server に保存された構成とログは SQL Server のセキュリティによって保護されますが、ファイルに書き込まれた情報のセキュリティには別の方法が必要です。詳細については、「パッケージで使用するファイルの保護」を参照してください。

デジタル署名

証明書を使用してパッケージに署名できます。パッケージが読み込まれる際に署名を確認して、パッケージが変更されている場合には警告を発生するようにパッケージを構成できます。パッケージには CheckSignatureOnLoad プロパティがあり、パッケージが読み込まれるたびにパッケージのデジタル署名を確認する必要がある場合は、このプロパティを True に設定します。詳細については、「証明書によるパッケージの署名」を参照してください。

参照

処理手順

Integration Services アクセスを有効にする Windows ファイアウォールの構成

概念

SQL Server Integration Services

ヘルプおよび情報

SQL Server 2005 の参考資料の入手