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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

注意

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

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

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

  • ルート ノード

  • フォルダー

  • エンティティ

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

  • フィールド

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

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

モデル アイテムの非表示

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

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

レポート マネージャーからモデルのアイテムをセキュリティ保護することができます。モデル アイテムをセキュリティ保護するには、レポート モデルをレポート サーバーに配置する必要があります。

  1. レポート マネージャーで、モデルのあるフォルダーに移動します。

  2. モデル名の上にマウス ポインターを移動し、矢印をクリックしてメニューを開き、[セキュリティ] をクリックします。

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

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

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

  6. [次のユーザーとグループをセミコロンで区切って読み取り権限を割り当ててください] をクリックします。

  7. ユーザーまたはグループをセミコロンで区切って入力します。

  8. [適用] をクリックします。

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