2004 年 6 月
© Microsoft Corporation, 2004。保留所有权利。
Reporting Services 文档编制小组欢迎您对本自述文档提出宝贵的意见和建议。您可以使用下面的链接以电子邮件的方式发送反馈信息。所有反馈信息必须用英文书写。如果您使用的是非英文版浏览器,并且是第一次配置 Outlook Express,则在配置 Outlook Express 后,可能需要再次单击该链接。使用亚洲语言版浏览器的用户可以忽略电子邮件消息主题行或正文中出现的任何乱码。要提交有关本文档的书面反馈,请单击此处: 提交反馈信息。
1.0 简介
1.1 SP1 安装概述
1.2 确定 Reporting Services 的当前版本
1.3 更新联机丛书
2.0 下载和解压缩 SP1
3.0 安装 Service Pack
3.1 备份报表服务器数据库
3.2 安装 SP1
3.4 命令行选项
3.5 重新分发 SP1
3.6 删除 SP1
3.7 重新生成 SP1 系统
4.0 SP1 文档
4.1 报表设计和处理
4.1.1 Excel 呈现扩展插件
4.1.2 PDF 呈现扩展插件
4.1.3 图表增强功能
4.1.4 外部图像
4.1.5 表达式中的换行符
4.1.6 报表设计器中的大小限制
4.1.7 报表设计器中的预览缓存功能
4.1.8 超链接协议
4.2.1 新的 URL 访问参数
4.2.2 自定义身份验证 Cookie
4.2.3 报表服务器系统属性
4.3 管理和部署
4.3.1 支持隐藏的参数
4.3.2 新的配置设置
4.3.3 有关集成安全性和高级权限的安全问题
Microsoft® SQL Server™ 2000 Reporting Services 的该 Service Pack 1 (SP1) 版本包括修补程序、性能增强和部分功能增强。要查看 SP1 中的修补程序列表,请参阅 Microsoft 知识库文章 839796。
本自述文件未能及时提供的最新信息将在 Microsoft 产品支持服务网站上的 Microsoft 知识库文章 843369 中发布。
Reporting Services SP1 是一个可应用于现有 Reporting Services 系统的更新程序。通过双击自解压缩可执行文件或在解压缩文件后通过命令行运行安装程序,即可运行 SP1。安装程序只升级当前已安装的组件。如果您在此之后安装了其他组件,则必须重新运行 SP1 安装程序才可更新这些组件。SP1 安装程序将执行以下操作:
该 Service Pack 与 SQL Server 2000 的 Service Pack 4 (SP4) 无关。如果在发行 SQL Server SP4 后安装 Reporting Services SP1,则 Microsoft 会建议您先应用 SP4。
Reporting Services SP1 与早期 Beta 版的 Windows XP SP2 之间存在不兼容性。(这些问题在以后的 Beta 版本中得到了解决。)如果您使用的是带有 Windows XP SP2 的 Reporting Services,则 Microsoft 建议您在安装 Reporting Services SP1 之前先应用 Service Pack 发行版。
要确定已安装的 Reporting Services 的版本,请键入报表服务器的 URL(例如 http://<Web 服务器示例>/reportserver)。版本信息位于该页的底部。最终产品版本是 Build 8.00.0743.00。
SP1 不会升级 Reporting Services 联机丛书。但是,您可以从 Microsoft 下载最新版本(2004 年 1 月)。要下载更新文档,请访问 Reporting Services 联机丛书,2004 年 1 月更新。
SP1 以自解压缩下载文件的形式进行分发,该文件可从 Microsoft 下载。有关下载位置的详细信息,请访问 Reporting Services 网站。
要安装 SP1,请使用以下各部分中的安装说明。在运行 SP1 安装程序之前,不必停止或暂停报表服务器 Windows 服务或 Web Service。
请注意,SP1 安装程序已本地化为各种 SQL Server 语言。如果您已安装了 Reporting Services 的最终版本,则 SP1 安装程序将检测您计算机上的有效语言;安装程序用户界面和错误消息都将以这种语言显示。
不支持远程安装 SP1。如果未安装 Reporting Services 组件(最终产品版本),则 SP1 安装将失败。
SP1 将修改以下文件和组件:
SP1 不会修改以下项:
在安装 SP1 之前,请备份 reportserver 和 reportservertempdb 数据库。如果不曾执行此操作,则还应备份数据库加密密钥的副本(有关详细信息,请参阅管理加密密钥)。
安装 SP1 的过程中将修改数据库,使其无法与 SP1 之前的 Reporting Services 版本兼容。如果您决定重新安装不包含 SP1 的 SQL Server 2000 Reporting Services,则这些备份将非常有用。
请从以下位置之一运行 SP1 安装程序:
注 为了通过网络共享来安装服务器组件,可能需要执行以下操作之一:
SP1 安装程序将显示一个包含最终用户许可协议 (EULA) 的对话框,然后提示您进行安装。
安装程序将使用您的域帐户凭据(Windows 集成安全性)来升级报表服务器数据库。必须对报表服务器具有 dbo 权限才能执行此升级操作。如果想使用不同的凭据,则应通过命令行来运行 SP1 安装程序。
您可以通过查看日志文件来解决安装问题或验证安装情况。SP1 安装程序将状态消息、错误和警告写入两个不同的日志文件中:
要查看日志文件,请依次单击“开始”、“运行”,然后在“运行”对话框中键入“%temp%”,接着单击“确定”。浏览 Temp 文件夹的目录,以找到所需的日志文件。
SP1 安装完成后,可能需要重新启动系统。系统重新启动后(或在不要求重新启动的情况下完成安装后),打开“控制面板”中的“服务”,确保报表服务器 Windows 服务正在运行。还应打开报表管理器并查看报表,以确保您的系统处于工作状态。
请务必备份已升级的 reportserver 数据库和 reportservertempdb 数据库。您无需创建新的加密密钥备份,也无需调整任何设置。SP1 不会修改连接信息,也不会使 SP1 之前的报表服务器加密功能失效。
如果已在某个 Web 场中部署了 Reporting Services,则必须在 Reporting Services 组件所在的每个计算机上运行 SP1 安装程序。这包括群集中的每个报表服务器以及共享报表服务器数据库所在的计算机。
您应使这些服务器脱机,直到所有报表服务器节点以及数据库都已升级(即停止 IIS 和报表服务器 Windows 服务)。应用 SP1 的顺序非常重要。您必须先将 SP1 应用于报表服务器数据库所在的服务器(这可以将数据库格式更新到 SP1 版本)。更新数据库后,即可按任何顺序更新报表服务器节点。请注意,在将第一个节点更新到 SP1 后,剩余的报表服务器节点将无法使用,直到将其升级为使用 SP1 数据库格式。
将报表服务器群集升级到 SP1 后,您无法使用安装程序将新的报表服务器实例或节点自动指向现有的报表服务器数据库。这时可以使用以下步骤来创建新的报表服务器节点:
您可以通过命令行来运行 SP1 安装程序,以执行无提示安装或指定一个非默认的帐户来升级报表服务器数据库(默认情况下,SP1 安装程序将使用正在运行安装程序的用户的凭据)。可以使用以下参数:
以下示例说明了指定命令行选项的语法:
SP1Setup.exe /q rssetupaccount=<mydomain>\<myusername> rssetuppassword=<mypassword>
独立软件供应商 (ISV) 可以重新分发此 Service Pack,以升级已集成到第三方产品中的 Reporting Services 组件。
要恢复到在安装 SP1 之前运行的版本,则必须卸载 Reporting Services,然后重新安装它,但之后不应用 SP1。SP1 没有单独的卸载程序。如果曾经对 Reporting Services 系统应用了快速修补工程 (QFE) 修补程序,则必须对实例重新应用该 QFE 修补程序。要卸载 Reporting Services,请使用“控制面板”中的“添加或删除程序”。
请注意,卸载该产品不会删除已升级到 SP1 格式的报表服务器数据库。您必须手动删除报表服务器数据库的 SP1 版本,并恢复属于 SP1 之前的系统的版本。
如果需要重新生成已升级到 SP1 的 Reporting Services 系统,请执行以下操作:
本部分说明了 SP1 中包含的功能增强。另外还包括了对联机丛书中各主题的更新和修正。本部分并非对 SP1 中提供的所有修补程序进行说明。有关这些修补程序的完整列表,请参阅 Microsoft 知识库文章 839796。
对开发人员文档的更正现已提供。要查看这些更新,请参阅以下 Microsoft 知识库文章。
以下增强特性适用于报表、报表处理和呈现以及报表 设计器。
Excel 呈现扩展插件已经过重大改进。呈现扩展插件所生成的输出格式已更改。这些改进体现在以下几个方面:
在 SP1 中,已经对 PDF 文件中的分页和矩阵性能进行了多方面的改进。如果您在 PDF 呈现扩展插件中遇到分页或矩阵性能问题,请参阅 Microsoft 知识库文章 839796 以获得修补程序的完整列表。
在 SP1 中,对制图组件进行了两方面的增强:现在可以将标签放置在饼图的外面,并且可以更改图表值元素的样式。
以前只能在图表内显示饼图中的点标签。现在,在 SP1 中,您可以将点标签放置在图表的外面。要将点标签放置在图表的外面,必须为点标签选择一个位置。
更改饼图中点标签的位置
注 如果选择靠上按钮、右上按钮、靠右按钮、右下按钮、靠下按钮、左下按钮、靠左按钮和左上按钮,将表示在图表周围显示点标签。如果选择“自动”或居中按钮,则表示在图表内显示点标签。
对于 SP1,图表样式已得到增强。以前不能在报表设计器中更改图表值元素(例如,图表中的条形或饼图扇区)的样式。对于整个图表,颜色仅限于自动调色板;无法选择分配给每个元素的颜色。而使用 SP1,则可以通过报表设计器来编辑元素的线条样式和填充颜色。同时还可以使用表达式来控制这些样式。
编辑图表元素的样式
1. 使用报表设计器创建一个图表。有关创建图表的详细信息,请参阅 Reporting Services 联机丛书中的“添加图表”。
2. 在“布局”视图中,右键单击图表,然后单击“属性”。
3. 在“数据”选项卡上的“值”中,选择要编辑的值,然后单击“编辑”。
注:如果图表中只有一个值系列,请选择“[值]”。
4. 在“外观”选项卡上,单击“系列样式”。
5. 在“边框和线条”选项卡上,选择线条样式、宽度和颜色。要使用表达式,请单击所需选项旁边的“表达式”(fx) 按钮。
6. 在“填充”选项卡上,选择颜色、渐变和渐变结束颜色。要使用表达式,请单击所需选项旁边的“表达式”(fx) 按钮。
注 如果提供静态值,将导致该值系列的所有图表元素均使用相同的样式进行显示。例如,如果选择“红色”作为填充颜色,将导致所有条形都变成红色,从而覆盖图表调色板自动分配的颜色。要根据字段或其他值提供不同的样式,请使用表达式。如果对填充颜色使用表达式,则图表元素在“布局”视图中为白色,但在运行报表时会正常显示。
注 填充颜色为“透明”时将导致图表元素使用图表调色板自动分配的颜色进行显示。
现在可以在报表中包含外部图像。通常通过 URL 来访问外部图像。报表中外部图像的“Source”属性为“External”。“Value”属性包含指向图像的 URL,例如 http://<服务器名>/images/image.jpg。
在报表设计器中预览报表时,预览功能将使用用户的凭据来显示该图像。在报表服务器上运行报表时,报表服务器将使用无人参与的执行帐户来检索该图像。如果未指定无人参与的执行帐户,则在检索该图像时不使用任何凭据(匿名用户帐户)。如果这些帐户都没有足够的权限访问该图像,则不会在报表中显示该图像。有关在报表服务器上设置无人参与的执行帐户的详细信息,请参阅 Reporting Services 联机丛书中的“为无人参与的报表处理配置帐户”。
以前必须在单行中包含表达式。而使用 SP1,表达式可以包含换行符。换行字符包括回车符 (CR)、换行符 (LF)、回车符和换行符 (CRLF)、段落分隔符 (Unicode 2029) 和行分隔符 (Unicode 2028)。在处理报表时,可以使用空格来替换换行符。
报表设计器中的页面大小和主体大小已进行了以下更改:
已将缓存功能添加到报表设计器中的预览功能中。在预览报表时,会将报表的数据存储在本地计算机上的文件中。在使用相同的查询、参数和凭据再次预览同一报表时,报表设计器将使用该缓存文件,而不是重新在报表中运行查询。这将提高报表设计器中预览功能的性能。
数据文件使用以下文件名进行保存:报表名.rdl.data。该文件与 RDL 文件位于相同的目录中。关闭报表设计器后,不会删除该文件。
可以通过配置设置关闭预览缓存功能。有关详细信息,请参阅新配置设置。
以前,报表中的所有 URL 均限于协议 http:、https:、file:、ftp:、mailto: 和 news:。对超链接来说,已取消了这些限制。现在,超链接可以包含任何协议标识符。对其他 URL(如图像的 URL)的限制保持不变。
以下部分介绍了 Reporting Services SP1 中为开发人员提供的新信息。
下表介绍了 Reporting Services SP1 的新 URL 访问参数。
使用此参数 | 任务 |
---|---|
rs:ParameterLanguage | 为 URL 上传递的参数提供一种独立于浏览器语言的语言。默认值为浏览器语言。该值可以是文化值,例如“英语(美国)”或“德语(德国)”。 |
rc:Parameters | 显示或隐藏工具栏的参数区域。如果将此参数设置为 true 值,将显示工具栏的参数区域。如果将此参数设置为 false 值,则不会显示参数区域,并且用户也无法显示参数区域。如果将此参数设置为 Collapsed 值,则不会显示参数区域,但最终用户可以对其进行切换。此参数的默认值为 true。 |
rc:Stylesheet | 指定要应用于 HTML 查看器的样式表。 |
rs:ParameterLanguage URL 访问参数可以缓解使用浏览器语言解释对文化敏感的报表参数(如日期、时间、货币和数字)时存在的问题。现在,借助 rs:ParameterLanguage,无需依赖浏览器即可解释 URL。例如,如果将报表服务器的区域设置设为“德语”,但用户正在使用已设为“英语(美国)”的浏览器来访问某个报表的 URL,则在解释已传递到报表服务器的参数值时将发生错误。请在报表中考虑使用以下 URL:
http://localhost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&StartDate=4/10/2003&EndDate=11/10/2003
在上述情况下,采用文化值“德语(德国)”运行的服务器将通过电子邮件订阅或超链接生成 URL。超链接指示应根据德语的日期/时间标准按开始日期“2003 年 10 月 4 日”、结束日期“2003 年 10 月 11 日”将报表参数化。但是,通过已设置为“英语(美国)”的浏览器访问该 URL 的用户将迫使服务器根据美国英语的日期/时间标准将这些值解释为“2003 年 4 月 10 日”和“2003 年 11 月 10 日”。这是错误的。要解决该问题,可以使用 rs:ParameterLanguage 覆盖用于解释参数的浏览器语言:
http://localhost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&StartDate=4/10/2003&EndDate=11/10/2003&rs:ParameterLanguage=de-DE
除了将 true 值和 false 值用于 URL 访问参数 rc:Parameters 之外,现在还可以传递 Collapsed 值。在 URL 上使用 rc:Parameters=Collapsed 时,HTML 查看器的参数区域将折叠成看不见的样式,但用户仍可对其进行切换。如果值为 false,则会将参数区域从 HTML 查看器工具栏完全删除,并且最终用户无法使用它。
rc:Stylesheet 参数可以通过启用自定义样式向 HTML 查看器添加功能。该参数的值就是您想应用于 HTML 查看器的样式表的名称(没有 .css 扩展名)。例如,如果已指定参数 rc:Stylesheet=fancy,就会应用样式目录中的 fancy.css 样式表。样式表必须是有效的层叠样式表 (CSS) 文件,并且必须位于样式目录中。此目录默认情况下位于 C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\Styles。以下示例演示了如何向 HTML 查看器添加自定义样式:
http://localhost/Reportserver?/SampleReports/Product+Line+Sales&rs:Command=Render&rc:Stylesheet=MyStyles
如果未指定样式表,则应用内部默认样式表。此默认样式表也位于样式目录中,以用作创建其他样式表的模板。
Reporting Services SP1 已改进了报表管理器在使用自定义安全扩展插件时传输 cookie 的方式。在早期版本的 Reporting Services 中,报表管理器只通过 http 请求传输报表服务器特定的那些 cookie。而在 SP1 中,报表管理器与报表服务器进行通信所使用的 Web Service 代理还可以传输其他 cookie。通过向报表管理器配置文件添加 PassThroughCookies 元素,可以使报表管理器将其他这些 cookie 传输到报表服务器。在不仅要求报表服务器身份验证 cookie,而且要求第三方身份验证系统的 cookie 的单一登录身份验证解决方案中,传输其他 cookie 非常有用。
在使用报表管理器时,要启用通过 http 请求传输其他 cookie 的功能,请在 RSWebApplication.config 文件中设置以下元素:
<UI> <CustomAuthenticationUI> ... <PassThroughCookies> <PassThroughCookie>cookiename1</PassThroughCookie> <PassThroughCookie>cookiename2</PassThroughCookie> </PassThroughCookies> </CustomAuthenticationUI> ...</UI>
SP1 包含两个您可以读取或设置的新系统属性。下表介绍了这些新属性以及经过更新的、完整的报表服务器系统属性集:
属性 | 说明 |
SnapshotCompression | SP1 中新增的属性。定义压缩快照的方式。默认值为 SQL。有效值如下所示:
SQL = 压缩存储在报表服务器数据库中的快照。这是最新功能。 None = 不压缩快照。 All = 对所有存储选项(包括报表服务器数据库或文件系统)压缩快照。 |
EnableIntegratedSecurity | SP1 中新增的属性。 确定对报表数据源连接是否支持集成安全性。默认值为 True。有效值如下所示:
True = 启用集成安全性。 False = 不启用集成安全性。已配置为使用集成安全性的报表数据源将不运行。 有关为何设置该属性的详细信息,请参阅有关集成安全性的安全问题。 |
SiteName | 用户界面上显示的报表服务器站点的名称。默认值为 SQL Server Reporting Services。此属性可以是空字符串。最大长度为 8,000 个字符。 |
SystemSnapshotLimit | 为报表存储的最大快照数。有效值为 -1 到 2、147、483、647。如果该值为 1,则不存在快照限制。 |
SystemReportTimeout | 报表服务器命名空间中管理的所有报表的默认报表处理超时值(以秒计)。可以在报表级别覆盖该值。如果设置了此属性,则报表服务器将在指定的时间已过期时尝试停止处理报表。有效值为 0 到 2、147、483、647。如果该值为 0,则命名空间中的报表在处理过程中不会超时。默认值为 1800。 |
UseSessionCookies | 指示报表服务器在与客户端浏览器进行通信时是否使用会话 cookie。默认值为 True。 |
SessionTimeout | 会话保持活动状态的时间长度(以秒计)。默认值为 600。 |
EnableMyReports | 指示是否启用“我的报表”功能。如果值为 True,则表示启用该功能。 |
MyReportsRole | 在用户的 My Reports 文件夹上创建安全策略时所使用的角色的名称。默认值为“我的报表”。 |
EnableExecutionLogging | 指示是否启用报表执行日志记录。默认值为 True。 |
ExecutionLogDaysKept | 在执行日志中保存报表执行信息的天数。此属性的有效值包括:0 到 2、147、483、647。如果该值为 0,则不会从“执行日志”表中删除条目。默认值为 60。 |
本部分说明了报表管理器用户界面的增强特性,并提供了有关报表服务器部署方案的更新信息。
现在,您可以在报表管理器中采用两全其美的方式来设置参数属性:
以前隐藏参数值的唯一方法是清除“参数”属性页中的“提示用户”复选框。但是,清除该复选框的负面效应是您再也不能在运行时为报表指定参数值。此限制已取消。在 SP1 中,您可以清除“提示用户”复选框,以隐藏报表中的参数字段和参数值。但这样做不会限制您以后在运行时从外部设置参数值。
SP1 安装程序不会修改、添加或删除配置文件中的设置。但是,SP1 引入了新的配置选项,您可以使用这些配置选项来更改 Reporting Services 系统。每个设置都有一个供 Reporting Services 组件使用的默认值。这些值在程序文件中进行指定。您可以使用所提供的默认值,也可以向配置文件添加设置来指定覆盖这些默认值的其他值。
SP1 中增添了以下配置设置,以便您可以指定存储临时快照的方式。报表服务器根据需要添加临时文件,然后在完成用户会话或订阅进程后再将其删除。要启用该功能,必须修改 RSReportServer.config 中的配置设置。默认情况下不启用此功能。默认情况下,报表服务器将临时快照存储在 reportservertempdb 数据库中。
注 除了新的配置设置之外,还增添了新的系统属性 (SnapshotCompression),以便您可以在存储快照之前先对其进行压缩。快照压缩可以减小快照占用的空间量。如果有许多用户访问报表执行快照,则压缩快照还可以提高可伸缩性(如果启用压缩功能,可能会导致性能降低)。压缩快照的另一个原因是:如果在报表服务器 Web 场中部署 Reporting Services,则压缩快照可以减少报表服务器数据库中的资源争夺问题。有关详细信息,请参阅 Report Server System Properties。
以下配置设置可以添加到 RSReportServer.config 中。
设置 | 说明 | 值 |
WebServiceUseFileShareStorage | 设置为 True 时,报表服务器 Web Service 将把缓存报表和临时快照(在用户会话期间创建的)存储在文件系统中。 | True
False(默认值) |
WindowsServiceUseFileShareStorage | 设置为 True 时,报表服务器 Windows 服务将把临时快照(在用户会话期间创建的)存储在文件系统中。 | True
False(默认值) |
FileShareStorageLocation | 指定文件系统上用于存储临时快照的文件夹。您可以指定一个文件夹。尽管您可以指定 UNC 路径,但并不建议您这样做。 | 默认值为 c:\program files\Microsoft SQL Server\MSSQL\Reporting Services\RSTempFiles。 |
使用以下示例可以指导您将这些设置添加到配置文件中。新的设置均以“粗体”显示。
<InstallationID>{acc27d3a-0875-44c0-8697-2532e36e9d13}</InstallationID><Add Key="SecureConnectionLevel" Value="0"/><Add Key="InstanceName" Value="MSSQLSERVER"/><Add Key="ProcessRecycleOptions" Value="0"/><Add Key="CleanupCycleMinutes" Value="10"/><Add Key="SQLCommandTimeoutSeconds" Value="60"/><Add Key="MaxActiveReqForOneUser" Value="20"/><Add Key="DatabaseQueryTimeout" Value="120"/><Add Key="RunningRequestsScavengerCycle" Value="60"/><Add Key="RunningRequestsDbCycle" Value="60"/><Add Key="RunningRequestsAge" Value="30"/><Add Key="MaxScheduleWait" Value="5"/><Add Key="DisplayErrorLink" Value="true"/><Add Key="WebServiceUseFileShareStorage" Value="false" /><Service><IsSchedulingService>True</IsSchedulingService><IsNotificationService>True</IsNotificationService><IsEventService>True</IsEventService><PollingInterval>10</PollingInterval><MemoryLimit>60</MemoryLimit><RecycleTime>720</RecycleTime><MaximumMemoryLimit>80</MaximumMemoryLimit><MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime><MaxQueueThreads>0</MaxQueueThreads><UrlRoot>http://<exampleWebServer>/ReportServer</UrlRoot><UnattendedExecutionAccount></UnattendedExecutionAccount><PolicyLevel>rssrvpolicy.config</PolicyLevel><WindowsServiceUseFileShareStorage>False</WindowsServiceUseFileShareStorage><FileShareStorageLocation> <Path> XXXXX </Path></FileShareStorageLocation></Service>
以下配置设置可以添加到 RSReportDesigner.config 中。
设置 | 说明 | 值 |
CacheDataForPreview | 设置为 True 时,报表设计器将把缓存文件中的数据存储到本地计算机上。有关详细信息,请参阅报表设计器中的预览缓存功能。 | True(默认值)
False |
使用以下示例可以指导您将这些设置添加到配置文件中。新的设置以“粗体”显示。
<Configuration> <Add Key="SecureConnectionLevel" Value="0" /> <Add Key="InstanceName" Value="Microsoft.ReportingServices.PreviewServer" /> <Add Key="SessionCookies" Value="true" /> <Add Key="SessionTimeoutMinutes" Value="3" /> <Add Key="PolicyLevel" Value="rspreviewpolicy.config" /> <Add Key="CacheDataForPreview" Value="true" /> <Extensions> ... </Extensions></Configuration>
如果报表查询包含恶意的 Transact-SQL 语句(例如,创建未经授权的登录、修改或删除数据或引入错误数据的语句),并且由对数据源所在的服务器具有高级权限的用户来运行该报表,则会使 SQL Server 遭受安全威胁。例如,如果攻击者发布了包含恶意查询的报表,并且存在以下任何一种情况,则该查询将在管理员凭据下进行处理:
要减小这种威胁,请遵照以下推荐的一种或多种安全方法进行操作:
使用集成安全性来访问外部数据源会对某些报表用户造成特殊的问题,因为他们可能不知道自己的安全令牌正被传递给外部数据源(在用户运行报表之前并未警告他们该报表已配置为使用集成安全性)。此外,用户在打开报表时可能不会像打开一个来源不明的电子邮件附件时那样慎重。但是,这两种情况下的安全风险却是相同的。恶意查询可以损坏或危害服务器,其方式与通过超链接显示的或隐藏在电子邮件附件中的恶意脚本损坏或危害工作站的方式相同。
请注意,如果禁用集成安全性,则当前已配置为使用集成安全性(或在禁用该功能后配置为使用集成安全性)的所有报表数据源均不再运行。如果报表服务器不支持集成安全性,则会返回以下错误:“此数据源已配置为使用 Windows NT 集成安全性,但该服务器禁用了 Windows NT 集成安全性”。
要禁用集成安全性,请使用脚本或代码修改 EnableIntegratedSecurity 系统属性(有关详细信息,请参阅 Report Server System Properties)。有关创建和运行脚本的详细信息,请访问 Scripting with the rs Utility and the Web Service。