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

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL Server Management StudioSQL Server Management Studio では、MicrosoftMicrosoft で作成された一連の標準レポートが多数のオブジェクト エクスプローラー ノードに表示されます。In SQL Server Management StudioSQL Server Management Studio, many Object Explorer nodes display a set of standard reports that are created by MicrosoftMicrosoft. これらのレポートは、要求されることの多いサーバー情報を要約表示できるように設計されています。These reports summarize typically requested server information. SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2 以降は、管理者が SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) で作成されたカスタム レポートを Management StudioManagement Studioから実行できるようになりました。Starting with SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2, administrators can run custom reports that were created in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) from Management StudioManagement Studio.

実装Implementation

カスタム レポートはレポート定義言語 (RDL) を使用して作成し、レポート定義 (.rdl) ファイルとして保存します。Custom reports are stored as report definition (.rdl) files and are created by using Report Definition Language (RDL). RDL には、レポートのデータ取得情報とレイアウト情報が XML 形式で含まれています。RDL contains data retrieval and layout information for a report in an XML format. RDL はオープン スキーマです。RDL is an open schema. 開発者は、属性や要素を追加して RDL を拡張することができます。Developers can extend RDL with additional attributes and elements. レポートは、任意の有効な Transact-SQLTransact-SQL ステートメントをレポート内で実行できます。Reports can execute any valid Transact-SQLTransact-SQL statement within the report.

オブジェクト エクスプローラーがサーバーに接続されている場合、オブジェクト エクスプローラーで現在選択されている内容のコンテキストでカスタム レポートを実行できます (ただし、そのノードのレポート パラメーターがレポートで参照されている必要があります)。If Object Explorer is connected to a server, custom reports can execute in the context of the current Object Explorer selection if the reports reference report parameters of that node. これにより、現在のデータベースなど現在のコンテキストをレポートで使用することができます。あるいは、カスタム レポートに含まれている Transact-SQLTransact-SQL ステートメントに特定のデータベースを使用するなどの形態で、一貫したコンテキストをレポートで使用することもできます。This enables a report to use the current context, such as the current database; or a consistent context, such as specifying a designated database as part of the Transact-SQLTransact-SQL statement that is contained in the custom report.

カスタム レポートの実行Running a Custom Report

Management StudioManagement Studio では次の方法でカスタム レポートを実行できます。You can run a custom report in Management StudioManagement Studio in the following ways:

  • オブジェクト エクスプローラーでノードを右クリックし、 [レポート] をポイントして、 [カスタム レポート] を左クリックします。Right-click a node in Object Explorer, point to Reports and left-click Custom Reports. [ファイルを開く] ダイアログ ボックスで .rdl ファイルを含むフォルダーを見つけ、適切なレポート ファイルを開きます。In the Open File dialog box, locate a folder that contains .rdl files, and then open the appropriate report file.

  • オブジェクト エクスプローラーでノードを右クリックして、 [レポート][カスタム レポート] の順にポイントし、最近使用したファイル一覧からカスタム レポートを選択します。Right-click a node in Object Explorer, point to Reports, point to Custom Reports, and then select a custom report from the most recently used file list.

制限事項Limitations

カスタム レポートを操作する場合は、次の制限事項に注意してください。When you work with custom reports, consider the following limitations:

  • 悪意あるコードが誤って実行されないようにするために、ファイル システムで .rdl ファイルが Management StudioManagement Studio に関連付けられていても、 Management StudioManagement Studioでレポートの自動実行を構成できないようになっています。To prevent the unintended execution of malicious code, Management StudioManagement Studio cannot be configured to automatically run a report, even if the file system is configured to associate .rdl files with Management StudioManagement Studio. レポートは、 Management StudioManagement Studio でプログラムから実行することも、 Management StudioManagement Studioのコマンド ラインから実行することもできません。Reports cannot be programmatically executed in Management StudioManagement Studio and cannot run from the command line through Management StudioManagement Studio.

  • カスタム レポートは、意図した値が生成されないコンテキストでも実行できます。You can run custom reports in a context that does not produce the expected values. たとえば、レプリケーションに関係のないデータベースのコンテキストでレプリケーションに関するレポートを実行することも、正確なレポートの生成に必要な情報にアクセスする権限のないユーザーとしてレポートを実行することもできます。For example, you can run a report about replication in the context of a database that is not involved in replication, or run a report as a user who does not have permission to access information that is required to generate an accurate report. レポートの構造およびコンテキストの妥当性については、カスタム レポートの作成者が注意する必要があります。The creator of the custom report is responsible for the validity of the report structure and its context.

  • カスタム レポートを標準レポートの一覧に追加することはできません。You cannot add a custom report to the list of standard reports.

  • レポートでのコード処理が、サーバーのパフォーマンスに影響することがあります。The code processed by the report might affect server performance.

  • カスタム レポートではサブレポートがサポートされません。Custom reports will not support subreports.

  • レポート内の各クエリのコマンド テキストを式で定義しないでください。The command text for each query within the report must not be defined through an expression.

  • コマンド (クエリ) で使用されるクエリ パラメーターでは、1 つのレポート パラメーターのみを参照でき、式演算子は使用できません。Any query parameter that is used in a command (query) can only reference a single report parameter and cannot use any expression operators.

  • レポート コマンド (クエリ) でサポートされるコマンドの種類は、テキストとストアド プロシージャのみです。Only Text and Stored Procedure command types are supported for report commands (queries).

  • レポート フレームワークには、クエリのパラメーター エスケープ機能がありません。The report framework does not provide any parameter escaping for the queries. クエリの作成者は、クエリが SQL インジェクション攻撃を受けないことを確認する必要があります。Query authors must make sure that their queries are free from SQL injection attacks.

カスタム レポートの管理Managing Custom Reports

カスタム レポートが多数ある場合は、適切な NTFS ファイル システム権限を持つファイル システム フォルダーを使用してカスタム レポートを整理することをお勧めします。We recommend that users who have many custom reports organize them by using file system folders that have appropriate NTFS file system permissions.

アクセス許可Permissions

カスタム レポートは、現在のユーザーの権限を使用して実行されます。Custom reports run by using the permissions of the current user. レポートで実行されるクエリが悪意あるユーザーによって変更されないようにするために、レポート ファイルが格納されるファイル システム フォルダーに権限を設定してアクセスを制限する必要があります。To prevent a malicious user from changing the queries run by the report, permissions on the file system folder that contains the report files should be set to restrict access.

SQL ServerSQL Server サービスによって使用されるユーザーとアカウントの両方に、レポート ファイルが格納されるファイル システム フォルダーへの読み取りアクセスが必要です。Both the user and the account that is used by the SQL ServerSQL Server service require read access to the file system folder that contains the report files.

レポートには任意の有効な .NET Framework.NET Framework コマンドを埋め込むことができますが、そのコマンドは実行されません。Any valid .NET Framework.NET Framework command can be embedded in a report, but the command will not be executed.

注意事項

レポートには任意の有効な Transact-SQLTransact-SQL ステートメントを埋め込み、レポートから実行することができます。Any valid Transact-SQLTransact-SQL statement can be embedded in and executed from a report. 高い特権を持つユーザー アカウントでレポートを実行すると、このように埋め込まれた命令を容易に実行できるようになります。Running a report under a high-privileged user account makes it possible for any of these embedded instructions to execute without challenge.

参照See Also

Management Studio へのカスタム レポートの追加Add a Custom Report to Management Studio
カスタム レポート実行時の警告の抑制を解除する方法Unsuppress Run Custom Report Warnings
カスタム レポートでのオブジェクト エクスプローラー ノード プロパティの使用Use Custom Reports with Object Explorer Node Properties