パブリッシュ済みレポートのパラメータ プロパティの設定

パラメータ化されたレポートとは、レポート処理で使用される入力値を受け付けるレポートです。パラメータは、レポートを作成するときにレポート デザイナで定義します。パラメータの定義方法の詳細については、「レポートへのパラメータの追加」を参照してください。

レポートのパブリッシュ後に、レポート マネージャを使用してパラメータ プロパティを変更することで、次の操作を実行できます。

  • ユーザーに表示されない事前に設定されたパラメータ値を指定して、レポートを実行します。

  • 既定のパラメータ値またはユーザーが選択した有効な値を使用してレポートを実行します。

  • パラメータ値を指定せずにレポートを実行します。NULL 値を指定して、フィルタされていない結果セットを取得できます。

  • ユーザーが提供する値 (たとえば、口座の残高や給与の控えを取得するための個人の ID 番号など) に基づいて、ユーザー固有の情報を取得する個人用レポートを実行します。

レポート デザイナからレポート定義を再パブリッシュした場合、通常、レポート マネージャで設定したパブリッシュ済みレポートのパラメータ プロパティは保持されます。レポート定義が同じレポートとして再パブリッシュされ、パラメータ名およびデータの種類が同じである場合、プロパティ設定は保持されます。レポート定義のパラメータの追加や削除、または既存のパラメータのデータ型やデータ名の変更を行った場合、パブリッシュ済みレポートのパラメータ プロパティの変更が必要になることがあります。

パラメータは変更できない場合もあります。レポート パラメータがクエリから既定値を取得した場合、レポート マネージャでその値を変更することはできません。"クエリベース" で指定されている既定のパラメータ値は、レポート定義で定義されているので、レポート マネージャでは変更できません。クエリベースのパラメータ値は定数値ではありません。実行時に使用される値は、クエリが実行されるとき (式ベースのパラメータの場合は式が評価されるとき) に決定されます。

レポート実行オプションは、パラメータの処理方法に影響します。スナップショットとして実行されるレポートは、クエリがパラメータの既定値を含まない限り、クエリから派生したパラメータを使用できません。クエリ パラメータの詳細については、「クエリ パラメータをレポート パラメータに関連付ける方法」を参照してください。

パラメータ化されたレポートのセキュリティの問題

機密性の高い情報を含むパラメータ化されたレポートを配布する際には注意が必要です。レポート パラメータは簡単に別の値に置き換えることができるので、予想外の情報が公開される可能性があるためです。

従業員データや個人データに対してパラメータを使用する代わりに、Users コレクションの UserID フィールドを含む式に基づいてデータを選択すると、セキュリティを強化できます。Users コレクションは、レポートを実行しているユーザーの ID を入手するための手段として利用できます。後は、その ID を使用して、ユーザー固有のデータを取得できます。詳細については、「式での組み込みコレクションの使用 (Reporting Services)」を参照してください。

セキュリティに関する注意セキュリティに関する注意

String 型のパラメータが含まれるレポートでは、使用可能な値の一覧 (有効な値の一覧とも呼ばれる) を必ず使用してください。また、レポートを実行するすべてのユーザーに対して、レポート表示に必要な権限のみを与えてください。String 型のパラメータを定義する場合は、任意の値が許容されるテキスト ボックスが表示されます。使用可能な値の一覧を使用すると、入力できる値が制限されます。クエリ パラメータにレポート パラメータが関連付けられている場合に、使用可能な値の一覧を使用しなければ、レポート ユーザーはテキスト ボックスに SQL 構文を入力できるので、レポートとサーバーが SQL インジェクション攻撃を受ける危険性が生じます。さらに、ユーザーが新しい SQL ステートメントを実行するための十分な権限を持っている場合は、サーバーで予想外の結果が生じる可能性もあります。

クエリ パラメータと関連付けられていないレポート パラメータがあり、このパラメータ値がレポートに含まれていると、レポート ユーザーが式の構文または URL をパラメータ値に入力して、このレポートを Excel または HTML に変換することも可能になります。別のユーザーがこのレポートを表示して、表示されたパラメータ コンテンツをクリックすると、悪意のあるスクリプトまたはリンクが意図せず実行される可能性があります。

悪意のあるスクリプトを誤って実行するリスクを軽減するためには、信頼できる作成元からのレポートだけを開くようにしてください。レポートの保護の詳細については、「レポートとリソースの保護」を参照してください。

パラメータ プロパティの設定

パブリッシュ済みレポートで変更できるパラメータ プロパティは、元のレポート定義で指定されているパラメータによって決まります。表示文字列、およびパラメータが表示されるかどうかを決定する Hide プロパティは、いつでも変更できます。ただし、既定値がクエリから派生している場合は、いつでも既定値を変更できるわけではありません。この場合、テキスト文字列である "QueryBased" が、パラメータの隣に表示されます。

パラメータ プロパティを変更するには、レポートの [パラメータ] プロパティ ページを開きます。以下のプロパティを変更できます。

  • [既定値あり] プロパティでは、ユーザーが入力を行わずにレポートを処理できるかどうかを決定します。パラメータに既定値が指定されていない場合は、ユーザーが値を指定しないとレポートを処理できません。

  • [既定値] プロパティは、定数または NULL (パラメータが NULL 値を許可する場合) です。式には設定できません。

  • [非表示] プロパティでは、表示フィールドおよび入力フィールドがユーザーに表示されるかどうかを決定します。パラメータを非表示にするには、このチェック ボックスをオンにします。

  • [ユーザーにメッセージを表示] プロパティでは、ユーザーがパラメータに対して別の有効な値を入力または選択できるかどうかを決定します。[非表示] をオフにすると、このプロパティが有効になります。

  • [文字列の表示] プロパティでは、パラメータの隣に表示されるテキストを指定します。このテキストは、ラベル、または使用方法の説明を指定する長いテキスト文字列です。[ユーザーにメッセージを表示] をオンにすると、このプロパティが有効になります。

パブリッシュ済みレポート内にあるパラメータのデータ型は、削除、名前変更、並べ替え、および変更ができません。また、パラメータ名を変更することもできません。これらのプロパティを変更するには、レポート定義を変更する必要があります。

パラメータの非表示

レポートで使用するパラメータのフィールドやラベルを非表示にすることができます。すべてのパラメータを非表示に設定すると、要求時レポートのパラメータ領域は非表示になります。パラメータを非表示にする場合は、レポート定義または [パラメータ] プロパティ ページで既定値を指定する必要があります。レポートによっては、NULL 値を指定することもできます (NULL 値が許可されている場合)。

パラメータを非表示にしても、あらゆる状況で表示されなくなるわけではありません。レポート ツール バーでパラメータを非表示にしても、そのパラメータをサブスクリプションで設定したり、URL を通じて設定したりすることは可能です。レポート定義以外のすべてのパラメータを非表示にするには、[レポート パラメータ] ダイアログ ボックスの [内部] を選択します。

パラメータを非表示にするには

  1. [既定値あり] をオンにします。

  2. [既定値] を指定します。

  3. [非表示] をオンにします。

パラメータ値の検証

指定した値が有効かどうかを検証するには、レポートを実行します。パラメータ処理に関連するエラー メッセージが、レポート マネージャの [エラー] ページに表示されます。問題をより詳しく調査するには、ログ ファイルを参照できます。詳細については、「Reporting Services のログ ファイル」を参照してください。

サブスクリプションでのパラメータの設定

[パラメータ] プロパティ ページの使用に加えて、サブスクリプションを作成するときにパラメータ値も設定できます。レポートをサブスクライブする各ユーザーは、サブスクリプションと共に格納され、かつサブスクリプションによって使用されるパラメータ値を指定することができます。詳細については、「サブスクリプションでのパラメータの設定」を参照してください。