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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

パラメーターの非表示

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

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

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

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

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

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

パラメーター値の検証

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

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

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