Management Studio におけるカスタム レポート

SQL Server Management Studio では、Microsoft で作成された一連の標準レポートが多数のオブジェクト エクスプローラー ノードに表示されます。 これらのレポートは、要求されることの多いサーバー情報を要約表示できるように設計されています。 SQL Server 2005 Service Pack 2 以降は、SQL Server データ ツール (SSDT) で作成されたカスタム レポートを Management Studio から実行できるようになりました。

実装

カスタム レポートはレポート定義言語 (RDL) を使用して作成し、レポート定義 (.rdl) ファイルとして保存します。 RDL には、レポートのデータ取得情報とレイアウト情報が XML 形式で含まれています。 RDL はオープン スキーマです。 開発者は、属性や要素を追加して RDL を拡張することができます。 レポートは、任意の有効な Transact-SQL ステートメントをレポート内で実行できます。

オブジェクト エクスプローラーがサーバーに接続されている場合、オブジェクト エクスプローラーで現在選択されている内容のコンテキストでカスタム レポートを実行できます (ただし、そのノードのレポート パラメーターがレポートで参照されている必要があります)。 これにより、現在のデータベースなど現在のコンテキストをレポートで使用することができます。あるいは、カスタム レポートに含まれている Transact-SQL ステートメントに特定のデータベースを使用するなどの形態で、一貫したコンテキストをレポートで使用することもできます。

カスタム レポートの実行

Management Studio では次の方法でカスタム レポートを実行できます。

  • オブジェクト エクスプローラーでノードを右クリックし、[レポート] をポイントして、[カスタム レポート] をクリックします。 [ファイルを開く] ダイアログ ボックスで .rdl ファイルを含むフォルダーに移動し、適切なレポート ファイルを開きます。

  • オブジェクト エクスプローラーでノードを右クリックして、[レポート] をポイントし、[カスタム レポート] をクリックした後、最近使用したファイル一覧からカスタム レポートを選択します。

制限事項

カスタム レポートを操作する場合は、次の制限事項に注意してください。

  • 悪意あるコードが誤って実行されないようにするために、ファイル システムで .rdl ファイルが Management Studio に関連付けられていても、Management Studio でレポートの自動実行を構成できないようになっています。 レポートは、Management Studio でプログラムから実行することも、Management Studio のコマンド ラインから実行することもできません。

  • カスタム レポートは、意図した値が生成されないコンテキストでも実行できます。 たとえば、レプリケーションに関係のないデータベースのコンテキストでレプリケーションに関するレポートを実行することも、正確なレポートの生成に必要な情報にアクセスする権限のないユーザーとしてレポートを実行することもできます。 レポートの構造およびコンテキストの妥当性については、カスタム レポートの作成者が注意する必要があります。

  • カスタム レポートを標準レポートの一覧に追加することはできません。

  • レポートでのコード処理が、サーバーのパフォーマンスに影響することがあります。

  • カスタム レポートではサブレポートがサポートされません。

  • レポート内の各クエリのコマンド テキストを式で定義しないでください。

  • コマンド (クエリ) で使用されるクエリ パラメーターでは、1 つのレポート パラメーターのみを参照でき、式演算子は使用できません。

  • レポート コマンド (クエリ) でサポートされるコマンドの種類は、テキストとストアド プロシージャのみです。

  • レポート フレームワークには、クエリのパラメーター エスケープ機能がありません。 クエリの作成者は、クエリが SQL インジェクション攻撃を受けないことを確認する必要があります。

カスタム レポートの管理

カスタム レポートが多数ある場合は、適切な NTFS ファイル システム権限を持つファイル システム フォルダーを使用してカスタム レポートを整理することをお勧めします。

権限

カスタム レポートは、現在のユーザーの権限を使用して実行されます。 レポートで実行されるクエリが悪意あるユーザーによって変更されないようにするために、レポート ファイルが格納されるファイル システム フォルダーに権限を設定してアクセスを制限する必要があります。

SQL Server サービスによって使用されるユーザーとアカウントの両方に、レポート ファイルが格納されるファイル システム フォルダーへの読み取りアクセスが必要です。

レポートには任意の有効な .NET Framework コマンドを埋め込むことができますが、そのコマンドは実行されません。

注記注意

レポートには任意の有効な Transact-SQL ステートメントを埋め込み、レポートから実行することができます。 高い特権を持つユーザー アカウントでレポートを実行すると、このように埋め込まれた命令を容易に実行できるようになります。

サンプル レポート

サンプル レポート (Microsoft で作成された標準レポートを含む) をダウンロードできます。 サンプルは SQL Server データ ツール (SSDT) を使用して変更することができます。

関連項目

タスク

Management Studio へのカスタム レポートの追加

概念

カスタム レポート実行時の警告の抑制を解除する方法

カスタム レポートでのオブジェクト エクスプローラー ノード プロパティの使用