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

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Management Studioでは、 Microsoftで作成された一連の標準レポートが多数のオブジェクト エクスプローラー ノードに表示されます。 これらのレポートは、要求されることの多いサーバー情報を要約表示できるように設計されています。 SQL Server 2005 (9.x) Service Pack 2 以降は、管理者が SQL Server Data Tools (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 ステートメントを埋め込み、レポートから実行することができます。 高い特権を持つユーザー アカウントでレポートを実行すると、このように埋め込まれた命令を容易に実行できるようになります。

参照

Management Studio へのカスタム レポートの追加
カスタム レポート実行時の警告の抑制を解除する方法
カスタム レポートでのオブジェクト エクスプローラー ノード プロパティの使用