数据连接、数据源和连接字符串 (SSRS)

若要在报表中包含数据,您必须首先创建“数据连接”(也称为“数据源”),然后创建数据集。数据连接包括数据源类型、连接信息以及要使用的凭据的类型。有两种类型的数据源:嵌入数据源和共享数据源。嵌入数据源在报表中定义并只由该报表使用。共享数据源单独从报表定义并可由多个报表使用。有关详细信息,请参阅 嵌入和共享的数据连接或数据源(Report Builder 3.0 和 SSRS)嵌入数据集和共享数据集(Report Builder 3.0 和 SSRS)

注意注意

在 Business Intelligence Development Studio 中,您可以在 Report Builder 3.0 和报表设计器中创建和修改报表定义 (.rdl)。每个创作环境提供了不同的方式来创建、打开和保存报表和相关项。有关详细信息,请参阅 Web 上 microsoft.com 中的“在报表设计器和 Report Builder 3.0 中设计报表 (SSRS)”。

嵌入数据源和共享数据源的区别在于创建、存储和管理这些数据源的方式不同。

  • 在报表设计器中,将嵌入数据源或共享数据源作为 Business Intelligence Development Studio 项目的一部分创建。您可以控制是在本地使用这些数据源进行预览,还是将它们作为项目的一部分安装到报表服务器或 SharePoint 站点。您可以使用已安装在您的计算机和报表服务器上或者部署报表的 SharePoint 网站上的自定义数据扩展插件。

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

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

  • 在报表生成器中,浏览到报表服务器或 SharePoint,并且选择共享数据源或者在报表中创建嵌入数据源。不能在报表服务器中创建共享数据源。无法在报表生成器中使用自定义的数据扩展插件。

有关报表创作环境之间的差异的详细信息,请参阅在报表设计器和 Report Builder 3.0 中设计报表 (SSRS)比较报表创作环境

内置的数据扩展插件包括以下数据连接类型:

  • Microsoft SQL Server

  • Microsoft SQL Server Analysis Services

  • Microsoft SharePoint 列表

  • Microsoft SQL Azure

  • Microsoft SQL Server Parallel Data Warehouse

  • OLE DB

  • Oracle

  • SAP NetWeaver BI

  • Hyperion Essbase

  • Teradata

  • XML

  • ODBC

您还可以指定指向某个报表模型的 URL。

有关示例,请参阅常用连接字符串示例。

指定数据源

若要创建数据源,必须具有以下信息:

  • 数据源类型 连接类型,例如 Microsoft SQL Server。请从连接类型的下拉列表中选择该值。 

  • 连接信息 连接信息包含数据源的名称和位置,以及特定于各数据访问接口的连接属性。“连接字符串”是连接信息的文本表示形式。例如,如果数据源为某一 SQL Server 数据库,则可以指定该数据库的名称。对于嵌入数据源,还可以编写在运行时计算的基于表达式的连接字符串。有关详细信息,请参阅本主题后面部分的基于表达式的连接字符串。

  • 凭据   提供访问数据所需的凭据。若要访问数据源和数据源上的特定数据,数据源所有者必须向您授予相应权限。例如,若要连接到网络服务器上安装的 AdventureWorks 示例数据库,您必须拥有连接到该服务器的权限以及访问该数据库的只读权限。

    注意注意

    根据设计,凭据与数据源是分开管理的。在本地系统预览报表所使用的凭据可能不同于查看已发布报表所需要的凭据。在将数据源保存到报表服务器或 SharePoint 站点后,您可能需要更改凭据以便从该位置工作。有关详细信息,请参阅数据源凭据。

注意注意

当您在 Business Intelligence Development Studio 中为报表创建嵌入数据源时,必须在解决方案资源管理器或“报表数据”窗格的报表设计器中创建数据源,而不是在服务器资源管理器中创建。SQL Server 报表设计器不支持在服务器资源管理器中创建的 Visual Studio 数据源。

“报表数据”窗格显示嵌入的数据源以及对已添加到报表的共享数据源的引用。在报表生成器中,共享数据源引用将指向报表服务器上或 SharePoint 站点上的共享数据源。在报表设计器中,共享数据源引用将指向解决方案资源管理器中“共享数据源”文件夹下的共享数据源。

常用连接字符串示例

连接字符串是数据访问接口的连接属性的文本表示形式。下表列出了各种数据连接类型的连接字符串示例。

数据源

示例

说明

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

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

将数据源类型设置为 Microsoft SQL Server。有关详细信息,请参阅 SQL Server 连接类型 (SSRS)

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

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

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

SQL Server 实例

数据库

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

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

SQL Server Express 数据库

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

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

云中的 SQL Azure 数据库

Data Source=<host>;Initial Catalog=AdventureWorks; Encrypt=True

将数据源类型设置为 Microsoft SQL Azure。有关详细信息,请参阅 SQL Azure 连接类型 (SSRS)

SQL Server Parallel Data Warehouse

HOST=<IP address>;database= AdventureWorks; port=<port>

将数据源类型设置为 Microsoft SQL Server Parallel Data Warehouse。有关详细信息,请参阅 SQL Server Parallel Data Warehouse 连接类型 (SSRS)

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

data source=localhost;initial catalog=Adventure Works DW

将数据源类型设置为 Microsoft SQL Server Analysis Services。有关详细信息,请参阅针对 MDX 的 Analysis Services 连接类型 (SSRS)针对 DMX 的 Analysis Services 连接类型 (SSRS)

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

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

指定报表服务器或文档库 URL 以及报表服务器文件夹或文档库文件夹命名空间中已发布的模型的路径。有关详细信息,请参阅报表模型连接 (SSRS)

在 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 连接类型 (SSRS)

SAP NetWeaver BI 数据源

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

将数据源类型设置为 SAP NetWeaver BI。有关详细信息,请参阅 SAP NetWeaver BI 连接类型 (SSRS)

Hyperion Essbase 数据源

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

将数据源类型设置为 Hyperion Essbase。有关详细信息,请参阅 Hyperion Essbase 连接类型 (SSRS)

Teradata 数据源

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

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

XML 数据源、Web 服务

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

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

XML 数据源、XML 文档

https://localhost/XML/Customers.xml

将数据源类型设置为 XML。其连接字符串是一个指向 XML 文档的 URL。

XML 数据源、嵌入的 XML 文档

将数据源类型设置为 XML。XML 数据嵌入在报表定义中。

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

有关连接到这些数据源类型所需的配置的详细信息,请参阅从外部数据源中添加数据 (SSRS)Reporting Services 支持的数据源 (SSRS)下的具体数据连接主题。

数据源凭据

按照设计,凭据可与连接信息分开保存和管理。凭据用于创建数据源、运行数据集查询和预览报表。

注意注意

我们建议您不要在数据源的连接属性中包括登录信息,例如登录名和密码。应尽可能将共享数据源与存储的凭据一起使用。在创作环境中,在创建数据连接或运行数据集查询时,使用“数据源”对话框的“凭据”页输入凭据。

从您的计算机为数据访问输入的凭据安全地存储于本地项目配置文件中,并且是特定于您的计算机的。如果将项目文件复制到另一台计算机,则必须重新为数据源定义凭据。

在您将某一报表部署到报表服务器或 SharePoint 站点时,其嵌入数据源和共享数据源将单独管理。从您的计算机访问数据所需要的数据源凭据可能不同于从报表服务器访问数据所需要的凭据。最好在发布报表后验证数据源连接是否继续保持成功连接状态。如果需要更改凭据,则可以在报表服务器上直接修改。

若要更改某一报表使用的数据源,可以通过手动导航到报表服务器文件夹并按名称选择数据源,修改报表属性。有关详细信息,请参阅如何将报表或模型绑定到共享数据源

有关详细信息,请参阅以下主题:

密码中的特殊字符

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

基于表达式的连接字符串

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

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

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

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

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

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

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

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

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

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