モデルのセキュリティ保護

レポート サーバーにおいて、レポート モデルは、アドホック レポートの作成と使用の両方の目的で、データ ソースとして使用されます。レポート モデルは、レポート サーバーのフォルダの名前空間を介する方法、モデル アイテムのセキュリティを介する方法、およびデータベース セキュリティを介する方法の 3 とおりの方法で保護できます。

レポート モデルのセキュリティは複数の層で構成されているので、フォルダ階層内のモデルを表示するユーザーには、デザイン時および実行時のモデルの使用方法に制限を課す他の制約が生じる場合があります。モデルをレポート データ ソースとして使用できるかどうかは、次の要因に依存します。

  • モデルでのロールベースのセキュリティ (レポート サーバーのフォルダ階層のモデルを表示する機能)。

  • データ ソースとしてモデルを使用するレポートでのロールベースのセキュリティ。ユーザーがレポートにアクセスできない場合、そのユーザーはモデルが提供するデータを表示できないことがあります (Reporting Services では、モデルのデータをレポートでしか表示できませんが、サード パーティのアプリケーションでは別の方法でモデル データを公開できます)。

  • モデル内のアイテムのセキュリティ。

  • ビュー、テーブル、または列レベルでのデータベース セキュリティ。

フォルダの名前空間内のレポート モデルのセキュリティ保護

レポート サーバー上に格納されたすべてのアイテムと同様に、ユーザーがレポート モデルを表示または管理できるかどうかを決めるアイテムレベルのロールの割り当てを定義できます。

  • モデルを表示する権限を持つユーザーは、レポート サーバーのフォルダ階層でモデルを表示したり、[全般] プロパティ ページでモデルに関する限定された量の情報を読み取ったり (モデルが作成された場合や変更された場合など)、モデルをデータ ソースとして使用するアドホック レポートでリンクをクリックすることによりモデルを照会することができます。

  • モデルを管理する権限のあるユーザーは、モデルの削除、名前変更、および更新を行うことができます。通常、モデル管理タスクは新しいモデルをパブリッシュできることも必要ですが、これは実際には、フォルダ上のロールの割り当てにより与えられます。フォルダ ロールの割り当てにより、ユーザーがフォルダにアイテムを追加できるかどうかが決まります。

パブリッシュされたモデルを表示する権限のあるユーザーが、直接そのモデルを開いて、そのコンテンツを表示したり、ファイル システムにダウンロードすることはできません。実行時には、レポート モデルとのすべての対話は、レポート モデルを使用するレポートを介して行われます。

モデル内のアイテムのセキュリティ保護

モデル アイテム セキュリティを指定すると、モデルの特定の部分へのアクセスを制御できます。モデル アイテム セキュリティを構成するには、SQL ServerManagement Studio を使用します。モデル アイテム セキュリティを有効にすると、モデルの名前空間の特定のノードでロールの割り当てを作成できます。詳細については、「[モデル アイテムのセキュリティ] ページ (レポート マネージャ)」を参照してください。

レポート モデルの名前空間は、ルート ノード、エンティティ、モデル ロール、およびフィールドを含む階層構造として表されます。ここには、モデル アイテムを編成する (ただしセキュリティ保護しない) ために使用するフォルダおよび分析観点も含まれます。Management Studio でモデルを表示すると、階層構造を参照し、異なるレベルでロールの割り当てを指定できます。レポート モデルのルート ノードでロールの割り当てを指定し、モデル全体へのアクセスを制御することも、モデルの一部でロールの割り当てを指定し、選択した分岐のアクセス権を変えることもできます。レポート サーバーのフォルダの名前空間のセキュリティと同様、モデルの名前空間では、ツリー構造の下位のアイテムに対して継承されるセキュリティをサポートします。

モデル アイテム セキュリティは既定ではオフです。モデル アイテム セキュリティが有効ではないとき、モデルが表すデータを表示するすべての権限は、レポート サーバーのフォルダ階層内のモデルおよびレポートでのロールの割り当てにより決定されます。

モデル アイテム セキュリティは、ユーザーに対して透過的です。ユーザーがモデル階層の特定の分岐へのアクセス権を持っていない場合、そのユーザーに対し、モデルのその部分はレポートに表示されません。これはデータの探索には使用できません。また、レポートにデータを返すこともできません。モデル アイテム セキュリティにより、レポート サーバーはデータ ソースに送信されるクエリを変更し、ユーザーによるアクセスが禁止されているモデルの部分を除外します。

データベース セキュリティによるモデルのセキュリティ保護

データベース セキュリティでは、モデルドリブン レポートに、セキュリティの第 3 層を提供します。テーブルまたは列へのアクセスを制限する場合、データベースはすべての不正アクセスに対してアクセス拒否エラーを返します。モデルに、データベース セキュリティの対象となるテーブルまたは列を含める場合、ユーザーが表示する権限のないテーブルまたは列にマップされているモデル アイテムにアクセスすると、データベース エラー メッセージが返されます。シナリオによっては、テーブルまたは列レベルのデータベース セキュリティは必要ですが、これがアドホック レポート ナビゲーションに与える影響を考慮することが重要です。レポートのナビゲーション中にデータベース エラー メッセージを受け取ったユーザーは、その手順を再度トレースし、アクセス権を持つモデルの部分に戻る必要があります。

注意注意

特定のユーザーのみが特定のテーブルまたは列の値を読み取ることの保障をデータベース セキュリティに依存している場合、データ ソースは Windows 統合セキュリティを使用するよう構成してください。

セキュリティ保護可能なモデル アイテム

Management Studio では、モデルの次の部分をセキュリティ保護できます。

  • ルート ノード

  • フォルダ

  • エンティティ

  • モデル ロール (ここで、"ロール" という用語はエンティティ間のリレーションシップを示します)

  • フィールド

分析観点全体はセキュリティ保護できませんが、分析観点内のモデル アイテムはセキュリティ保護できます。セキュリティはモデル アイテムのセキュリティに基づいて継承されます。たとえば、モデル内でモデル アイテムにアクセスできるのが管理者のみである場合、モデル アイテムが分析観点に表示されたとき、そのモデル アイテムにアクセスできるのは管理者のみです。

レポート モデル セキュリティは、レポート サーバーのフォルダ階層やシステム レベルで定義するセキュリティとは区別されます。モデルのルート ノードに対するフォルダ階層を介したアクセスまたはセキュリティ保護は行われません。

モデル アイテムの非表示

ロールの割り当てによるアクセスの制限の代わりに、[非表示] プロパティを使用して、ユーザーにモデルの一部が表示されないようにすることができます。すべてのユーザーにモデル アイテムが表示されないようにするには、モデル デザイナでアイテムの [非表示] プロパティを true に変更します。アイテムを非表示にしても、このアイテムはモデルの計算またはリレーションシップから削除されません。たとえば、式に使用されるフィールドを非表示にした場合、ユーザーは表示できなくても、式ではこのフィールドが使用されます。アイテムを非表示にすると、このアイテムはすべてのユーザーに対して非表示になります。ユーザーまたはグループごとに表示およびアクセス権を変える場合は、[非表示] プロパティではなく、ロールの割り当てを使用してアイテムをセキュリティ保護してください。

レポート モデルのアイテムをセキュリティ保護する方法

モデル内のアイテムをセキュリティ保護するには、Management Studio からレポート サーバーに接続する必要があります。モデル アイテムをセキュリティ保護するには、レポート モデルをレポート サーバーに配置する必要があります。

  1. Management Studio で、モデルを格納するレポート サーバーに接続します。

  2. オブジェクト エクスプローラで、モデルに移動し、セキュリティ保護するモデルを右クリックして、[プロパティ] をクリックします。

  3. [モデルのプロパティ] ページで、[モデル アイテムのセキュリティ] をクリックします。

  4. [このモデルのモデル アイテムは個別にセキュリティで保護する] チェック ボックスをオンにします。

  5. ルート ノードを選択します。ルート ノードではロールの割り当てが必要です。

  6. [各グループまたはユーザー アカウントに次のロールを使用する] をクリックします。

  7. [グループまたはユーザーの追加] をクリックします。

  8. ロールの割り当てを作成するグループまたはユーザーを選択し、[OK] をクリックします。

  9. セキュリティ保護する次のエンティティ、リレーションシップ、フィールド、またはフォルダに移動します。手順 6. ~ 8. を繰り返します。