チュートリアル : レポート モデル アイテムへのセキュリティ フィルターの適用
SQL Server Reporting Services では、モデル アイテム セキュリティを使用して、グループまたはユーザーへのアクセスを許可できます。たとえば、データベースに販売注文情報が含まれているとします。モデル アイテム セキュリティを適用しない限り、このモデルへの権限を持つユーザーは、だれでもこの販売注文データを表示できます。モデル アイテム セキュリティを使用すると、モデル内のアイテムを選択し、異なるユーザーやグループに公開できます。一般的に、これはデータベースのテーブルと列のセキュリティに似ています。モデル アイテム セキュリティを有効化したり構成するには、レポート マネージャーを使用します。
モデル アイテム セキュリティを適用するには、モデルをレポート サーバーに配置する必要があります。その後、レポート マネージャーの [セキュリティ] ページで、モデル内のエンティティおよびフィールドに対してセキュリティを適用できます。行レベル セキュリティを使用して、モデルにより返されるデータを保護することもできます。たとえば、販売員が自分の販売注文だけを表示できるように設定できます。行レベル セキュリティを適用するには、データを制限するフィルターとして使用可能な属性を少なくとも 1 つ作成し、その属性に SecurityFilters コレクション プロパティまたは DefaultSecurityFilter オブジェクト プロパティを割り当てる必要があります。この属性にはブール値を指定する必要があり、IsFilter プロパティは True に設定する必要があります。属性をレポート フィールドとして表示する必要がない場合は、オプションで Hidden プロパティを True に設定できます。
行レベル セキュリティに少なくとも 1 つの属性を使用するとすぐ、既定ではすべての行が非表示になります。ユーザーはセキュリティ フィルターに基づいて行へのアクセス権を得ることができます。SecurityFilters コレクションに追加する各属性は、該当のフィルターで公開される行へのアクセスを許可する条件となります。セキュリティ フィルターが存在する場合に、どのフィルターに対しても権限を持たないユーザーまたはグループは、既定のセキュリティ フィルターが定義されていない限りどの行も表示することはできません。既定のセキュリティ フィルターが定義されている場合は、このフィルターによって公開されている行のみが表示されます。
![]() |
---|
既定では、管理者はモデル全体にアクセスすることはできません。管理者がモデル全体にアクセスできるようにするには、他のユーザーやグループと同様に、権限を与える必要があります。 |
このチュートリアルでは、SecurityFilters コレクションを使用して、行レベル セキュリティを Adventure Works2008R2 レポート モデル内のエンティティに適用する方法について学習します。次に、レポート マネージャーを使って必要なセキュリティ設定を適用します。
![]() |
---|
SQL Server のサンプルやサンプル データベースを表示したり使用したりするには、まずそれをダウンロードしてインストールする必要があります。詳細については、「SQL Server のサンプルとサンプル データベースのインストールに関する注意点」を参照してください。 |
必要条件
このチュートリアルを使用するには、システムに次のコンポーネントがインストールされている必要があります。
Microsoft SQL Server Reporting Services (ネイティブ モードで実行)。SQL Server Express には、モデルのサポートが含まれていません。詳細については、「SQL Server 2008 R2 の各エディションがサポートする機能」を参照してください。対象は次のとおりです。
Microsoft SQL Server。
Microsoft SQL Server Business Intelligence Development Studio。
Microsoft SQL Server と AdventureWorks2008R2 データベース
Microsoft SQL Server と Adventure Works レポート モデル サンプル
Microsoft .NET Framework 2.0 (レポート ビルダーを実行するシステムで必要)。
必要な権限は次のとおりです。
レポート モデルの配置とパブリッシュを行う場合は、コンテンツ マネージャーまたはパブリッシャーのロール
AdventureWorks2008R2 データベースからデータを取得する権限
さらに、レポート サーバーを実行しているコンピューターで、統合セキュリティと共にインターネット インフォメーション サービス (IIS) を使用していることを確認します。