レポートへのパラメータの追加

Reporting Services では、パラメータを使用して、レポートで使用するデータの指定、関連するレポートの接続、レポートの表示方法の変更を行います。パラメータを効果的に使用したレポートをデザインするには、パラメータとデータセット クエリが連携するしくみ、パラメータと式が連携するしくみ、パブリッシュされたレポートのパラメータをレポート サーバーで管理する方法、およびレポートで取得するようにデザインされている情報を理解する必要があります。パラメータ化の対象として何を選択するかが、レポートのデザインやレイアウトに影響する可能性があります。

クエリ パラメータは、クエリ デザイナまたは [データセットのプロパティ] ダイアログ ボックスを使用してデータセット クエリに追加します。パラメータを指定したクエリを作成すると、Reporting Services により、クエリ パラメータが自動的に同じ名前のレポート パラメータにリンクされます。新しいレポート パラメータは、[レポート データ] ペインで追加および変更します。

Reporting Services でのパラメータの使用

パラメータの最も一般的な使用方法は、データセット クエリによって取得されるレポート データを変更することです。このシナリオでは、ユーザーはレポートの実行時に値を指定するよう求められ、データセット クエリは、要求されるデータのみを取得します。データセット クエリにはクエリ パラメータが含まれ、Reporting Services では、対応するレポート パラメータが自動的に作成されます。これらは間接的にクエリ パラメータにリンクされます。レポート デザイン ツールでレポート パラメータのプロパティを変更して、実行時に表示される有効な値の一覧とユーザー プロンプトを含めることができます。

また、データ ソースから階層データを取得するカスケード型パラメータを作成することもできます。たとえば、最初のパラメータで製品カテゴリに対してフィルタ処理を行い、2 番目のパラメータで製品に対してフィルタ処理を行うことができます。カスケード型パラメータは、ユーザーが使用できる値の数を整理および制限するために使用されます。

一部のデータ ソースでは、クエリ パラメータがサポートされていません。ソースでデータをフィルタ処理できない場合は、レポート パラメータを使用して、取得後のレポートのデータをフィルタ処理することができます。すべてのパラメータに対応するレポート パラメータがありますが、レポート デザイナ ツールで個別にレポート パラメータを定義できます。また、レポート パラメータを使用すると、データが取得された後にレポートの外観や構成を変更することもできます。

パラメータは、レポートをサブレポートおよびドリルスルー レポートに接続する際に使用されます。これらのレポート パラメータは、非表示にし、メイン レポートの値を使用して接続済みのレポートに対して適切なデータを選択することも、実行時に表示することもできます。

レポート パラメータの作成後は、既定値および他のパラメータ プロパティ (表示設定など) を変更できます。たとえば、レポート パラメータでは、UserID などの組み込みの変数を使用できるので、レポートを実行するユーザー固有のデータを選択する非表示パラメータを使用してレポートを作成することもできます。パラメータには、単一の値または複数の値を格納することも、静的またはクエリ ベースの有効な値の一覧を使用することも、NULL 値または空白の値を許可することも可能です。複数の値を持つパラメータを使用すると、ユーザーは実行時に複数の値を選択できるようになります。

レポートがパブリッシュされると、パラメータをレポート定義とは別に管理できます。デザイン時のレポート パラメータの構成によっては、パブリッシュされたレポートの多くのパラメータ プロパティをレポート サーバー管理者が変更できます。また、複数のユーザー用にレポートをカスタマイズする、同じレポート定義にリンクされたパラメータ セットも作成できます。詳細については、「パブリッシュ済みレポートのパラメータ プロパティの設定」を参照してください。

URL アクセスを使用して、レポートを実行したりパラメータ値を指定したりすることもできます。詳細については、「URL アクセス パラメータの使用」を参照してください。

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

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

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

悪意のあるスクリプトを誤って実行するリスクを軽減するためには、信頼されたソースのレポートしか開かないようにする必要があります。レポートの保護の詳細については、「レポートとリソースの保護」を参照してください。

このセクションの内容