在报表生成器中创建数据连接字符串

适用于: SQL Server 2016 (13.x) Reporting Services 及更高版本 Power BI 报表服务器 SharePoint

若要在报表生成器和 Reporting Services 分页报表中添加数据,必须先创建连接到数据源的连接字符串。 本文介绍了如何创建数据连接字符串,以及提供与数据源凭证相关的重要信息。 数据源包含数据源类型、连接信息以及所需的凭证类型。 有关更多信息,请参阅 SQL Server Reporting Services (SSRS) 中的报表数据简介

内置数据扩展插件

Reporting Services 中的默认数据扩展插件包括 Microsoft SQL Server、Microsoft Azure SQL 数据库和 Microsoft SQL Server Analysis Services。 有关 Reporting Services 支持的数据源和版本的完整列表,请参阅 Reporting Services 支持的数据源 (SSRS)

常用连接字符串示例

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

注意

访问Connectionstrings.com 是可获取连接字符串示例的另一种方法。

数据源 示例 说明
本地服务器上的 SQL Server 数据库 Data Source="(local)"; Initial Catalog=AdventureWorks 将数据源类型设置为 Microsoft SQL Server。 有关详细信息,请参阅 SQL Server 连接类型 (SSRS)
SQL Server 命名实例 Data Source=<host>\MSSQL13.<InstanceName>; Initial Catalog=AdventureWorks 将数据源类型设置为 Microsoft SQL Server。 有关详细信息,请参阅 SQL Server 连接类型 (SSRS)
Azure SQL Database Data Source=<host>.database.windows.net; Initial Catalog=AdventureWorks; Encrypt=True 将数据源类型设置为“Microsoft Azure SQL 数据库”。 有关详细信息,请参阅 Azure SQL 连接类型 (SSRS)
SQL Server 并行数据仓库 HOST=<IP address>; database=AdventureWorks; port=<port> 将数据源类型设置为 Microsoft SQL Server Parallel Data Warehouse。 有关详细信息,请参阅 SQL Server 并行数据仓库连接类型 (SSRS)
本地服务器上的 Analysis Services 数据库 Data Source=localhost; Initial Catalog=Adventure Works DW 将数据源类型设置为 Microsoft SQL Server Analysis Services。 有关详细信息,请参阅针对 MDX 的 Analysis Services 连接类型 (SSRS)针对 DMX 的 Analysis Services 连接类型 (SSRS)
具有 Sales 透视的 Analysis Services 表格模型数据库 Data Source=<servername>; Initial Catalog=Adventure Works DW; cube='Sales' 将数据源类型设置为 Microsoft SQL Server Analysis Services。 在 cube= 设置中指定透视名称。 有关详细信息,请参阅表格模型中的透视
Azure Analysis Services Data Source=asazure://aspaaseastus2.asazure.windows.net/<server name>; Initial Catalog=AdventureWorks 将数据源类型设置为 Microsoft SQL Server Analysis Services。 有关详细信息,请参阅 Microsoft SQL Server Analysis Services 数据处理扩展插件
Oracle 服务器 Data Source=<host> 将数据源类型设置为 Oracle。 此外,还必须在报表设计器计算机上和报表服务器上安装 Oracle 客户端工具。 有关详细信息,请参阅 Oracle 连接类型(SSRS 和 Power BI 报表服务器)
SAP NetWeaver BI 数据源 Data Source=https://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。 连接字符串是包含四个字段的 IP 地址,其中每个字段可以包含一至三位数。 有关详细信息,请参阅 Teradata 连接类型 (SSRS)
Teradata 数据源 Database=<database name>; Data Source=<NNN>.<NNN>.<NNN>.<NNN>; Use X Views=False; Restrict to Default Database=True 与前一示例类似,将数据源类型设置为 Teradata。 请只使用在 Database 标记中指定的默认数据库,不要自动发现数据关系。
XML 数据源、Web 服务 data source=https://adventure-works.com/results.aspx 将数据源类型设置为 XML。 连接字符串是支持 Web 服务定义语言 (WSDL) 的 Web 服务的 URL。 有关详细信息,请参阅 XML 连接类型 (SSRS)
XML 数据源、XML 文档 https://localhost/XML/Customers.xml 将数据源类型设置为 XML。 其连接字符串是一个指向 XML 文档的 URL。
XML 数据源、嵌入的 XML 文档 Empty 将数据源类型设置为 XML。 XML 数据嵌入在报表定义中。
SharePoint 列表 Data Source=https://MySharePointWeb/MySharePointSite/ 将数据源类型设置为 SharePoint List
Power BI Premium 数据集(从 Reporting Services 2019 和 Power BI Report Server January 2020 开始) Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspacename>; Initial Catalog=<datasetname> 将数据源类型设置为 Microsoft SQL Server Analysis Services

如果无法使用 localhost 连接到报表服务器,请检查是否已启用网络协议 TCP/IP 协议。 有关详细信息,请参阅配置客户端协议

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

密码中的特殊字符

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

基于表达式的连接字符串

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

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

="Data Source=" & Parameters!ServerName.Value & "; Initial Catalog=AdventureWorks"  

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

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

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

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

  • 添加报表参数以指定数据源。 对于参数值,可以提供可用值的静态列表,也可以定义在运行时检索数据源列表的查询。 在这种情况下,可用值的静态列表即为可用于报表的数据源。

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

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