次の方法で共有


セキュリティの概要 (Integration Services)

SQL Server Integration Services では、豊富かつ柔軟なセキュリティ環境を提供できるように、複数の階層でセキュリティが構成されています。 このようなセキュリティの階層では、デジタル署名、パッケージのプロパティ、 SQL Server データベース ロール、およびオペレーティング システム権限が使用されます。 こうしたセキュリティ機能のほとんどは、ID およびアクセス制御のカテゴリに分類されます。

ID に関する機能

アクセス制御に関する機能をパッケージに実装することにより、次の目的を達成できます。

信頼できるソースのパッケージのみを開いて実行します

信頼できるソースのパッケージのみを開いて実行するには、まずパッケージのソースを特定する必要があります。 ソースは、証明書を使用してパッケージに署名することによって特定できます。 その後、パッケージを開いたり実行したりする際には、 Integration Services で、デジタル署名が存在するかどうか、および有効かどうかを確認することができます。 詳細については、「 デジタル署名を使用してパッケージのソースを特定する」を参照してください。

アクセス制御に関する機能

アクセス制御に関する機能をパッケージに実装することにより、次の目的を達成できます。

認証済みのユーザーのみがパッケージを開いて実行するようにします

認証済みのユーザーのみがパッケージを開いて実行するには、次の情報へのアクセスを制御する必要があります。

  • パッケージの内容、特に機微なデータ

  • SQL Serverに格納されているパッケージおよびパッケージの構成

  • ファイル システムに格納されているパッケージおよび関連ファイル (構成ファイル、ログ、チェックポイント ファイルなど)

  • Integration Services サービス、およびサービスによって SQL Server Management Studioに表示されるパッケージに関する情報。

パッケージの内容へのアクセスの制御

パッケージの内容へのアクセスを制限するために、パッケージの ProtectionLevel プロパティを設定してパッケージを暗号化できます。 このプロパティは、パッケージで必要な保護レベルに設定できます。 たとえば、チーム開発環境では、パッケージに関する作業を行っているチーム メンバーだけが知っているパスワードを使用して、パッケージを暗号化できます。

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

通常、 Integration Services では、パスワードや接続文字列などの情報がプロパティに含まれている場合、またはタスクによって生成された XML ノードや変数にプロパティが対応する場合、このようなプロパティは機微なプロパティとして扱われます。 Integration Services でプロパティが機微と見なされるかどうかは、接続マネージャーやタスクなど、 Integration Services コンポーネントの開発者がプロパティを機微として指定したかどうかによって決まります。 機微と見なされているプロパティの一覧では、ユーザーはプロパティを追加することも削除することもできません。カスタム タスク、接続マネージャー、またはデータ フロー コンポーネントを作成する場合は、 Integration Services で機微なデータとして扱う必要のあるプロパティを指定できます。

詳しくは、「 Access Control for Sensitive Data in Packages」をご覧ください。

パッケージへのアクセスの制御

Integration Services パッケージは、 SQL Serverのインスタンス内の msdb データベースに保存するか、.dtsx というファイル名拡張子の付いた XML ファイルとしてファイル システムに保存することができます。 詳細については、「 パッケージを保存する」を参照してください。

msdb データベースへのパッケージの保存

パッケージを msdb データベースに保存すると、サーバー レベル、データベース レベル、およびテーブル レベルのセキュリティを実現できます。 msdb データベースでは、 Integration Services パッケージは sysssispackages テーブルに格納されます。 パッケージは、msdb データベースの sysssispackages テーブルと sysdtspackages テーブルに保存されるため、msdb データベースのバックアップ時に自動的にバックアップされます。

SQL Server msdb データベースに格納されるパッケージは、 Integration Services のデータベース レベルのロールを適用して保護することもできます。 Integration Services には、パッケージへのアクセスを制御するための、db_ssisadmin、db_ssisltduser、および db_ssisoperator というデータベース レベルの 3 つの固定ロールがあります。 各パッケージにはリーダー ロールおよびライター ロールを関連付けることができます。 また、 Integration Services パッケージで使用する、データベース レベルのカスタム ロールを定義することもできます。 ロールは、 SQL Serverインスタンス内の msdb データベースに保存されるパッケージにのみ実装できます。 詳細については、「Integration Services のロール (SSIS Service)」を参照してください。

ファイル システムへのパッケージの保存

パッケージを msdb データベースではなくファイル システムに格納する場合は、パッケージ ファイル、およびパッケージ ファイルが格納されるフォルダーをセキュリティで保護してください。

パッケージで使用するファイルへのアクセスの制御

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

詳細については、「 パッケージで使用されるファイルへのアクセス」を参照してください。

パッケージの構成の安全な格納

パッケージの構成は、 SQL Server データベースのテーブル、またはファイル システムに保存できます。

構成は、msdb データベースだけでなく、すべての SQL Server データベースに保存できます。 このため、パッケージ構成のリポジトリとして機能するデータベースを指定できます。 また、構成を格納するテーブルの名前を指定すると、 Integration Services は正しい構造のテーブルを自動的に作成します。 構成をテーブルに保存すると、サーバー レベル、データベース レベル、およびテーブル レベルのセキュリティを実現できます。 さらに、 SQL Server に保存した構成は、データベースのバックアップ時に自動的にバックアップされます。

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

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

Integration Services サービスへのアクセスの制御

SQL Server Management Studio では、格納されているパッケージの一覧を表示する際に SQL Server サービスが使用されます。 権限のないユーザーが、ローカル コンピューターまたはリモート コンピューターに格納されているパッケージに関する情報を参照してプライベート情報を取得できないようにするには、 SQL Server サービスを実行するコンピューターへのアクセスを制限します。

詳細については、「 Integration Services サービスへのアクセスの制御」を参照してください。

セキュリティに関連する特定のタスクを実行する方法を示すトピックへのリンクを次に示します。

参照

SQL Server Integration Services