レッスン 2: 行レベル セキュリティの属性の作成
一般に、行レベルのセキュリティを定義するには、ユーザーのログイン情報を使用して、どの行を表示するかを決定します。このレッスンでは、ユーザーのログイン情報に基づいてデータをフィルター処理する Employee エンティティ内に属性を作成します。フィルターを作成してからそのフィルターを式として編集し、GetUserID 関数を使用できるようにします。
注 |
---|
このレッスンは、コンピューターで Business Intelligence Development Studio を開き、ウィンドウにレポート モデルを表示していると想定して開始します。 |
式として編集するフィルター処理された属性を作成するには
ツリー ビューで、[Employee] エンティティを選択します。
リスト ビューに Employee 属性が表示されます。
[Employee] を右クリックし、[新規作成] をポイントして [フィルター] をクリックします。
[データのフィルター選択] ダイアログ ボックスが開きます。
[フィールド] ボックスの一覧で、[Login ID2] をダブルクリックします。
レッスン 1 で作成した [Login ID2] フィールドを使用するフィルター条件がフィルターに追加されます。
フィルターで [Login ID2] を右クリックして [式として編集] をクリックします。
[式の定義] ダイアログ ボックスが開き、Login ID2=Empty という式が表示されます。
[式] ボックスで、[Empty] という語を選択します。
[関数] タブをクリックし、[情報] ノードを展開します。
[GetUserID] 関数をダブルクリックします。
Empty が、GetUserID() に置き換えられます。
[OK] をクリックします。
[式の定義] ダイアログ ボックスが閉じ、フィルター句に Login ID2=GetUserID と表示されます。
もう一度 [OK] をクリックします。
[データのフィルター選択] ダイアログ ボックスが閉じ、NewFilter 属性がリスト ビューに表示されます。次に、属性の名前を変更します。
属性の名前を変更するには
リスト ビューで、[NewFilter] 属性を右クリックし、[名前の変更] を選択します。
「UserIDFilter」と入力します。
次に、必要な属性のプロパティを割り当てます。
属性のプロパティを変更するには
リスト ビューで、[UserIDFilter] 属性を選択します。
[プロパティ] ウィンドウで、[IsFilter] プロパティを探します。
[IsFilter] の値が [True] であることを確認します。
[Hidden] プロパティを見つけます。
[Hidden] の下矢印をクリックし、[True] を選択します。
Hidden プロパティを True に変更すると、モデル ユーザーがモデルを使用してレポートを作成するときに、この属性が表示されなくなります。この属性は、セキュリティを割り当てる際のフィルターとして使用します。したがって、ユーザーが自分のレポートを作成するときは、その属性を参照する必要がありません。
リスト ビューで、[Login ID2] 属性を選択します。
[プロパティ] ウィンドウで、[Nullable] プロパティを探します。
Login ID2 属性では、Nullable プロパティが True に設定されているため、UserIDFilter 属性では Nullable プロパティが True に設定されている必要があります。ただし、これはセキュリティ フィルターとして使用するための必須プロパティではありません。
[Nullable] の下矢印をクリックし、[True] を選択します。
属性をセキュリティ フィルター コレクションに割り当てるには
ツリー ビューで、[Employee] エンティティを選択します。
[プロパティ] ウィンドウで、[SecurityFilters] プロパティを探します。
[SecurityFilters] プロパティを選択し、参照ボタン ([…]) をクリックします。
[属性参照コレクション エディター] ダイアログ ボックスが開きます。
[追加] をクリックします。
[セキュリティ フィルター属性] ダイアログ ボックスが表示されます。
[エンティティ] の一覧で、[Employee] エンティティが選択されていることを確認します。
[フィールド] 一覧で、[UserIDFilter] 属性を選択します。
[OK] をクリックし、再度 [OK] をクリックします。
次に、モデルに加えた変更を保存し、そのモデルをレポート サーバーに再配置します。
レポート モデルを保存して配置するには
[ファイル] メニューの [すべてを保存] をクリックします。
ソリューション エクスプローラーで [Adventure Works Model] プロジェクトを右クリックして、[配置] をクリックします。
モデルがレポート サーバーに配置されます。
重要 モデルの配置に成功したことを確認するには、[エラー一覧] タブを表示します。エラーが発生した場合は、次に進む前に問題のトラブルシューティングを行う必要があります。
次の手順
ここでは、属性を作成し、SecurityFilters コレクションに割り当てました。次に、SQL Server Management Studio でモデル アイテム セキュリティを有効にする必要があります。「レッスン 3: レポート マネージャーを使用した行レベルのセキュリティの有効化」を参照してください。