Management Studio 中的自定义报表

新建日期: 2006 年 12 月 12 日

在 SQL Server Management Studio 中,许多对象资源管理器节点都显示一组由 Microsoft 创建的标准报表。这些报表汇总了通常请求的服务器信息。从 SQL Server 2005 Service Pack 2 开始,Management Studio 允许管理员运行通过 Management Studio 在 中创建的自定义报表。

实现

自定义报表是使用报表定义语言 (RDL) 创建的,并存储为报表定义 (.rdl) 文件。RDL 包含 XML 格式的报表数据检索信息和布局信息。RDL 是开放式架构;开发人员可以用其他属性和元素扩展 RDL。报表可以执行位于报表内部的任何有效的 Transact-SQL 语句。

如果将对象资源管理器连接至服务器,并且自定义报表引用了当前所选对象资源管理器节点的报表参数,则该自定义报表可在此节点的上下文中执行。这样,报表可以使用当前上下文(如当前数据库)或统一的上下文(如在自定义报表包含的 Transact-SQL 语句中指定一个专门数据库)。

运行自定义报表

可以在 Management Studio 中通过以下方式运行自定义报表:

  • 在对象资源管理器中,右键单击一个节点,指向**“报表”,再左键单击“自定义报表”。在“打开文件”**对话框中,找到包含 .rdl 文件的文件夹,然后打开相应的报表文件。
  • 在对象资源管理器中,右键单击一个节点,指向**“报表”,再指向“自定义报表”**,然后从最近打开的文件列表中选择一个自定义报表。

限制

使用自定义报表时,注意以下限制:

  • 若要防止恶意代码的意外执行,则即使已把文件系统配置为将 .rdl 与 Management Studio 关联,也不能将 Management Studio 配置为自动运行报表。不能在 Management Studio 中通过编程方式执行报表,也不能通过 Management Studio 从命令行运行报表。
  • 可以在不会生成预期值的上下文中运行自定义报表。例如,可以在复制未涉及的数据库的上下文中运行有关复制的报表,也可以作为对生成准确报表所需信息不具有访问权限的用户运行报表。自定义报表的创建者负责验证报表结构及其上下文。
  • 不能将自定义报表添加到标准报表列表中。
  • 由报表处理的代码可能会影响服务器性能。
  • 自定义报表不支持子报表。
  • 不得通过表达式定义报表中每个查询的命令文本。
  • 命令(查询)中使用的任何查询参数都只能引用单个报表参数,而不能使用任何表达式运算符。
  • 报表命令(查询)只支持“文本”和“存储过程”命令类型。
  • 报表框架不为查询提供任何参数转义。查询的创建者必须确保他们的查询不会受到 SQL 注入攻击。

管理自定义报表

建议拥有许多自定义报表的用户使用具有相应的 NTFS 权限的文件系统文件夹来组织这些报表。

权限

自定义报表使用当前用户的权限运行。若要防止恶意用户更改由报表运行的查询,应将包含报表文件的文件系统文件夹的权限设置为“限制访问”。

SQL Server 服务所使用的用户和帐户都要求对包含报表文件的文件系统文件夹具有读取权限。

可以在报表中嵌入任何有效的 Microsoft .NET Framework 命令,但不会执行此命令。

Bb153684.Caution(zh-cn,SQL.90).gif注意:
可以在报表中嵌入任何有效的 Transact-SQL 语句,并可从报表执行此语句。如果以高特权用户帐户运行报表,则可以不受约束地执行所有这些嵌入的指令。

报表示例

报表示例,包括由 Microsoft 创建的标准报表,均可通过下载获得。某些示例可以使用 Business Intelligence Development Studio 加以修改。

请参阅

任务

如何向 Management Studio 添加自定义报表
如何启用运行自定义报表警告

概念

将自定义报表与对象资源管理器节点属性一起使用

帮助和信息

获取 SQL Server 2005 帮助