连接数据源 (Reporting Services)

数据源定义用于指定数据源类型、连接字符串和凭据。可以共享数据源定义以供多个报表使用,或者将其嵌入到报表定义中。有关详细信息,请参阅管理报表数据源

为数据源存储的连接信息因数据源类型而异。Reporting Services 提供了支持以下数据源类型的数据扩展插件:

  • Microsoft SQL Server

  • Microsoft SQL Server Analysis Services

  • OLE DB

  • Oracle

  • ODBC

  • Report Server Model

  • SAP NetWeaver BI

  • Hyperion Essbase

  • Teradata

  • XML

系统管理员可以安装和配置其他数据处理扩展插件和 .NET Framework 数据访问接口。有关详细信息,请参阅数据处理扩展插件和 .NET Framework 数据访问接口

开发人员可以使用 Microsoft.ReportingServices.DataProcessing API 来创建数据处理扩展插件以支持其他类型的数据源。

指定数据源

首次创建报表时,系统将提示您创建数据源定义。您可以新建数据源定义,也可以使用现有的共享数据源。若要连接数据源,必须具有以下信息:

  • 数据源类型 数据源的特定类型,例如 MicrosoftSQL Server。请从支持的数据源类型的列表中选择该值。

  • 连接信息 也称为连接字符串,连接信息包含数据源的名称和位置,在某些情况下还包含数据访问接口的特定版本。如果数据源为数据库,则可以在连接字符串中指定相应数据库的名称。对于嵌入数据源,还可以编写在运行时计算的基于表达式的连接字符串。有关详细信息,请参阅本主题后面部分的基于表达式的连接字符串。

  • 权限 您必须已拥有使用指定凭据访问数据源和数据源上特定数据的相应权限。例如,若要连接到网络服务器上安装的 AdventureWorks 示例数据库,您必须拥有连接到该服务器的权限以及访问该数据库的只读权限。

    注意注意

    在本地系统预览报表所使用的凭据可能不同于查看已发布报表所需要的凭据。有关详细信息,请参阅如何验证与数据源的连接

连接到数据源之后,数据源定义将在“报表数据”窗格中显示。“报表数据”窗格显示嵌入数据源和对共享数据源的引用。共享数据源显示在解决方案资源管理器中的“共享数据源”文件夹下。还可以在“报表数据”窗格中为报表指定其他数据源。

有关详细信息,请参阅:

注意注意

当在 Business Intelligence Development Studio 中为报表创建嵌入数据源时,必须在报表设计器而不是服务器资源管理器中创建数据源。SQL Server 报表设计器不使用在服务器资源管理器中创建的 Visual Studio 数据源。

常用连接字符串示例

下表列出了各种数据源的连接字符串示例。有关连接到这些数据源类型所需的配置的详细信息,请参阅 Reporting Services 支持的数据源

数据源

示例

说明

本地服务器上的 SQL Server 数据库

data source="(local)";initial catalog=AdventureWorks

将数据源类型设置为 SQL Server。

本地服务器上的 SQL Server 数据库

data source="(local)";initial catalog=AdventureWorks

将数据源类型设置为 SQL Server。

SQL Server 实例

数据库

Data Source=localhost\MSSQL10.InstanceName; Initial Catalog=AdventureWorks

将数据源类型设置为 SQL Server。

SQL Server Express 数据库

Data Source=localhost\MSSQL10.SQLEXPRESS; Initial Catalog=AdventureWorks

将数据源类型设置为 SQL Server。

本地服务器上的 Analysis Services 数据库

data source=localhost;initial catalog=Adventure Works DW

将数据源类型设置为 SQL Server Analysis Services。

在本机模式下配置的报表服务器上的报表模型数据源

Server=http://myreportservername/reportserver; datasource=/models/Adventure Works

指定报表服务器或文档库 URL 以及报表服务器文件夹或文档库文件夹命名空间中已发布的模型的路径。

在 SharePoint 集成模式下配置的报表服务器上的报表模型数据源

Server=https://server; datasource=https://server/site/documents/models/Adventure Works.smdl

指定报表服务器或文档库 URL 以及报表服务器文件夹或文档库文件夹命名空间中已发布的模型的路径。

SQL Server 2000 Analysis Services 服务器

provider=MSOLAP.2;data source=<remote server name>;initial catalog=FoodMart 2000

将数据源类型设置为 OLE DB Provider for OLAP Services 8.0。

如果将 ConnectTo 属性设置为 8.0,则可以快速连接到 SQL Server 2000 Analysis Services 数据源。若要设置此属性,请使用“连接属性”对话框中的“高级属性”选项卡。

Oracle 服务器

data source=myserver

将数据源类型设置为 Oracle。此外,还必须在报表设计器计算机上和报表服务器上安装 Oracle 客户端工具。有关详细信息,请参阅从 Oracle 数据库创建报表数据集

SAP NetWeaver BI 数据源

DataSource=http://mySAPNetWeaverBIServer:8000/sap/bw/xml/soap/xmla

将数据源类型设置为 SAP NetWeaver BI。有关详细信息,请参阅从 SAP NetWeaver BI 数据源创建报表数据集

Hyperion Essbase 数据源

Data Source=https://localhost:13080/aps/XMLA; Initial Catalog=Sample

将数据源类型设置为 Hyperion Essbase。有关详细信息,请参阅从 Hyperion Essbase 数据源创建报表数据集

Teradata 数据源

data source=<NNN>.<NNN>.<NNN>.<NNN>;

将数据源类型设置为 Teradata。连接字符串是包含四个字段的 Internet 协议 (IP) 地址,其中每个字段可以包含一至三位数。

XML 数据源、Web 服务

data source=http://adventure-works.com/results.aspx

将数据源类型设置为 XML。连接字符串是支持 Web 服务定义语言 (WSDL) 的 Web 服务的 URL。有关详细信息,请参阅从 XML 数据创建报表数据集

XML 数据源、XML 文档

https://localhost/XML/Customers.xml

将数据源类型设置为 XML。其连接字符串是一个指向 XML 文档的 URL。有关详细信息,请参阅从 XML 数据创建报表数据集

XML 数据源、嵌入 XML 文档

将数据源类型设置为 XML。XML 数据嵌入在报表定义中。有关详细信息,请参阅从 XML 数据创建报表数据集

如果无法使用 localhost 连接到报表服务器,请检查是否已启用网络协议 TCP/IP 协议。有关详细信息,请参阅连接到 SQL Server 数据库引擎

数据源凭据

在 BI Development Studio 中的报表设计器中预览报表时,报表处理器使用在创建数据源时指定的凭据从该数据源中检索数据。这些凭据存储在本地项目配置文件中,只能用于其所存储的计算机。如果将项目文件复制到另一台计算机,则必须重新为数据源定义凭据。

报表发布后,在本地使用的凭据可能没有查看报表服务器上报表的足够权限。从您的计算机访问数据所需要的数据源凭据可能不同于从报表服务器访问数据所需要的凭据。最好在将报表发布到报表服务器之后验证数据源连接是否继续保持成功连接状态。如果需要更改凭据,则可以在报表服务器上直接修改。有关详细信息,请参阅为报表数据源指定凭据和连接信息如何存储数据源的凭据(报表管理器)

基于表达式的连接字符串

基于表达式的连接字符串是在运行时计算的。例如,您可以将数据源指定为参数,在连接字符串中包含相应的参数引用,并允许用户选择报表的数据源。例如,假设一个跨国公司在多个国家/地区都配置了数据服务器。使用基于表达式的连接字符串,要运行销售报表的用户就可以在运行报表之前选择用于特定国家/地区的数据源。

下面的示例说明了 SQL Server 连接字符串中数据源表达式的用法。该示例假设您已经创建了一个名为 ServerName 的报表参数:

="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

数据源表达式在运行时或预览报表时进行处理。此类表达式必须用 Visual Basic 编写。定义数据源表达式时请遵循以下原则:

  • 使用静态连接字符串设计报表。静态连接字符串指的是不通过表达式设置的连接字符串(例如,按照步骤创建报表特定数据源或共享数据源时,定义的就是静态连接字符串)。使用静态连接字符串,可以在报表设计器中连接到数据源,以便获取创建报表所需的查询结果。

  • 定义数据源连接时,请不要使用共享数据源。不能在共享数据源中使用数据源表达式。您必须为报表定义嵌入数据源。

  • 在连接字符串之外单独指定凭据。您可以使用存储的凭据、提示凭据或集成安全性。

  • 添加报表参数以指定数据源。对于参数值,可以提供可用值的静态列表(这种情况下,可用值应该是报表可以使用的数据源),或定义在运行时检索数据源列表的查询。

  • 请确保列表中的数据源共用同一个数据库架构。所有报表设计都以架构信息为基础。如果用于定义报表的架构和报表运行时使用的实际架构不相符,报表将可能无法运行。

  • 在发布报表之前,使用表达式替换静态连接字符串。使用表达式替换静态连接字符串之前,必须保证已经完成了报表的设计。一旦使用了表达式,就不能在报表设计器中执行查询。此外,“报表数据”窗格中的字段列表以及“参数”列表将不会自动更新。

密码中的特殊字符

如果将 ODBC 或 SQL 数据源配置为提示输入密码或在连接字符串中包含密码,并且用户输入了具有标点符号等特殊字符的密码,则有些基础数据源驱动程序无法验证特殊字符。处理报表时,可能会出现“密码无效”这一消息来指示此问题。如果不能更改密码,则可以使用数据库管理员角色将相应的凭据作为系统 ODBC 数据源名称 (DSN) 的一部分存储在服务器上。有关详细信息,请参阅 .NET Framework SDK 文档中的 "OdbcConnection.ConnectionString"。

注意注意

建议您不要在连接字符串中添加登录信息(如密码)。报表设计器在“数据源”对话框中提供了一个单独的选项卡,用于输入凭据。这些凭据安全地存储在报表设计器计算机上。