报表数据源的凭证和连接
报表服务器可以使用凭据连接到向报表提供内容或者向数据驱动订阅提供收件人信息的外部数据源。 您可以指定凭据使用 Windows 身份验证、数据库身份验证、自定义身份验证或不使用任何身份验证。 当通过网络发送连接请求时,Report Server 会模拟用户帐户或无人参与的执行帐户。 有关建立连接请求时所处安全性上下文的详细信息,请进一步参阅本文中的数据源配置和网络连接。
注意
凭据也可以用于对访问报表服务器的用户进行身份验证。 有关向报表服务器验证用户身份的更多信息男,请参阅报表服务器中的身份验证。
与外部数据源的连接是在创建报表时定义的。 发布报表后可以单独管理该连接。 可以指定静态连接字符串或表达式,这允许用户从动态列表中选择数据源。 有关如何指定数据源类型和连接字符串的更多信息,请参阅在报表生成器中创建数据连接字符串。
报表生成器中使用的凭证
在 Report Builder 中,连接到 Report Server 时通常会使用凭证。 这些凭证还用于与数据相关的任务,例如创建嵌入数据源、运行数据集查询或预览报表。 凭证不保存在报表中。 将在报表服务器或本地客户端对凭证进行单独管理。 下表介绍了可能需要提供的凭证类型、凭据的存储位置以及使用方法:
在 Reporting Services 登录对话框中输入的报表服务器凭证。
当您首次保存到、发布到或浏览到报表服务器或 SharePoint 站点时,可能需要输入凭证。 在报表生成器会话结束之前,将始终使用所输入的凭据。 如果选择保存凭证,则这些凭证将与用户设置一起安全地存储在计算机上。 在后续的报表生成器会话中,将使用保存的凭据连接到同一报表服务器或 SharePoint 站点。 报表服务器管理员或 SharePoint 管理员指定要使用哪一种类型的凭据。
在嵌入数据源的“数据源属性”对话框中输入的数据源凭证。
报表服务器使用这些凭据与外部数据源建立数据连接。 对于某些类型的数据源,可以将凭据安全地存储在报表服务器上。 利用这些凭据,其他用户无需提供凭据即可运行报表进行基础数据连接。
运行数据集查询、刷新数据集字段或预览报表时,在“输入数据源凭证”对话框中输入的数据源凭证。
使用这些凭证,报表生成器可以与外部数据源建立数据连接,或对配置为提示输入提供凭证的报表进行预览。 在此对话框中输入的凭证不会存储在 Report Server 中,且不能由其他用户使用。 在报表编辑会话期间,Report Builder 会对这些凭证进行缓存,以便你无需在每次运行查询或预览报表时输入凭证。
对于共享数据源,使用 “保存我的密码” 选项可以将凭据与用户设置一起保存到本地计算机上。 报表生成器在每次连接到相应的外部数据源时使用保存的凭据。
有关详细信息,请参阅在 Report Builder 中预览报表。
远程数据源
如果报表从远程数据库服务器检索数据,则必须验证以下内容:
提供给数据库服务器的凭据有效。 如果使用 Windows 用户凭证,请确保用户拥有访问服务器和数据库的权限。
数据库服务器使用的端口处于打开状态。 如果要访问外部计算机上的 SQL Server 关系数据库,必须在外部计算机上打开端口 1433 和 1434。 如果报表服务器数据库位于外部 SQL Server 实例上,也必须打开这些端口。 打开端口后务必重新启动服务器。 有关更多信息,请参阅为数据库引擎访问配置 Windows 防火墙。
必须启用远程连接。 如果要访问外部计算机上的 SQL Server 关系数据库,则可以使用 SQL Server 配置管理器工具来验证是否启用了通过传输控制协议 (TCP) 的远程连接。
指定用于连接到远程数据源的凭证
为报表提供内容的数据源托管在远程服务器上。 要检索报表数据,必须使用一组事先提供或在运行时获取的凭证将报表服务器连接到服务器。 配置数据源时,您可以按下列方式指定凭据:
- 提示用户输入凭据。
- 存储凭据。
- 使用 Windows 集成安全性。
- 不使用凭据。
网络环境决定了您可以支持的连接种类。 例如,如果启用了 Kerberos 版本 5 协议,则可以使用 Windows 身份验证中的委托功能和模拟功能来支持跨多个服务器的连接。 如果你的网络不支持这些安全功能,则需要针对连接约束采取相应的措施。 如果未启用委托和模拟,则在 Windows 凭证过期之前,可以跨一个计算机连接传递该凭证。 从客户端计算机到报表服务器计算机的用户连接可算作第一个连接。 如果用户打开从远程服务器检索数据的报表,该登录将算作第二次连接。 如果指定连接使用禁用了委派的集成安全性,则连接会失败。
如果需要用多个连接来完成从客户端计算机到外部报表数据源的往返,请在以下策略中进行选择来建立多个连接:
在域中启用模拟功能和委托功能,以便凭据可以不受限制地委托给其他计算机。
使用已存储凭据或提示的凭据来查询报表数据的外部数据源。 凭证可以是 Windows 域帐户,也可以是数据库登录名。
提示的凭证
将报表数据源连接配置为使用提示的凭证时,访问该报表的每个用户都必须输入用户名和密码才能检索数据。 建议将此方法用于包含机密数据的报表。 只能对按需运行的报表使用提示的凭据。 提示的凭证可以是 Windows 帐户,也可以是数据库登录名。 要使用 Windows 身份验证,必须选择“用作 Windows 凭证”。 否则,报表服务器会将凭据传递给数据库服务器进行用户身份验证。 如果数据库服务器无法对你所提供的凭证进行身份验证,则该连接将失败。
Windows 集成安全性
使用 “Windows 集成安全性” 选项时,报表服务器会将访问报表的用户的安全令牌传递给外部数据源所在的服务器。 在这种情况下,系统不会提示用户输入用户名或密码。 如果启用了模拟功能和代理功能,建议使用此方法。 如果未启用这些功能,则只能在所有要访问的服务器都位于同一个计算机上时才能使用此方法。
已存储凭据
您可以存储用于访问外部数据源的凭据。 凭据以逆加密的形式存储在报表服务器数据库中。 您可以为报表中使用的每个数据源都指定同一套已存储凭据。 所提供的凭据会为每位运行该报表的用户检索相同的数据。
建议将已存储凭据作为远程数据库服务器访问策略的一部分。 如果要支持订阅,或计划生成报表历史记录或刷新报表快照的时间,则要求使用已存储凭据。 当报表作为后台进程运行时,报表服务器便会充当执行报表的代理。 此时,由于不存在用户上下文,报表服务器必须从报表服务器数据库获取凭证信息才能连接到数据源。
您指定的用户名和密码可以是 Windows 凭证,也可以是数据库登录名。 如果指定 Windows 凭据,报表服务器会将凭据传递给 Windows,用于随后的身份验证。 否则,凭据将传递给数据库服务器进行身份验证。
向域用户帐户授予“允许本地登录”权限
如果使用存储的凭证连接到外部数据源,则 Windows 域用户帐户必须拥有在本地登录的权限。 此权限允许报表服务器模拟报表服务器上的用户,然后以该模拟用户的身份向外部数据源发送请求。
要在报表服务器上授予此权限,请转到“管理工具”,添加要在“本地安全策略”>“安全设置”>“本地策略”>“用户权限分配”中用于交互式登录的 Windows 帐户。 确保选择的帐户没有拒绝权限。
有关更多信息,请参阅配置安全策略设置和允许本地登录 – 安全策略设置。
使用存储的凭证进行模拟
您还可以使用凭据来模拟其他用户的身份。 对于 SQL Server 数据库,模拟选项设置了 SETUSER 函数。
重要
对于支持订阅的报表,或按计划生成报表历史记录或刷新报表执行快照的报表,请勿使用模拟功能。
无凭据
您可以将数据源连接配置为不使用凭据。 应始终使用凭证访问数据源。 不过,在以下情况下,可以选择不使用凭证运行报表:
- 远程数据源不要求使用凭证。
- 凭据是在连接字符串中传递的(建议只用于安全连接)。
- 报表是一个使用了父报表的凭据的子报表。
上述情况下,报表服务器使用必须事先定义的无人参与的执行帐户连接到远程数据源。 由于报表服务器不能使用服务凭证连接到远程服务器,因此必须指定一个报表服务器可用于建立连接的帐户。 有关创建此帐户的详细信息,请参阅配置无人参与的执行帐户 (Report Server Configuration Manager)。
用户名和密码登录
选择 “使用此用户名和密码” 时,必须提供用户名和密码才能访问数据源。 对于 SQL Server 数据库,凭证可能用于数据库登录。 凭据将传递到数据源用于身份验证。
数据源配置和网络连接
下表显示了如何针对特定的凭据类型和数据处理扩展插件组合建立连接。 如果使用自定义数据处理扩展插件,请参阅指定用于自定义数据处理扩展插件的连接。
类型 | 网络连接上下文 | 数据源类型 (SQL Server、Oracle、ODBC、OLE DB、Analysis Services、XML、SAP NetWeaver BI、Hyperion Essbase) |
---|---|---|
集成安全性 | 模拟当前用户。 | 对于所有数据源类型,使用当前的用户帐户进行连接。 |
Windows 凭据 | 模拟指定的用户。 | 对于 SQL Server、Oracle、开放式数据库连接 (ODBC) 和对象链接和嵌入数据库(OLE DB):使用被模拟用户帐户进行连接。 |
数据库凭据 | 模拟无人参与的执行帐户或服务帐户。 (Reporting Services 在使用服务标识发送连接请求时会删除管理员权限)。 |
对于 SQL Server、Oracle、ODBC 和 OLE DB: 将用户名和密码追加到连接字符串中。 对于 Analysis Services: 如果使用 TCP/IP 协议,则连接成功;否则,连接将失败。 对于 XML: 如果使用数据库凭据,则报表服务器上的连接将失败。 |
无 | 模拟无人参与的执行帐户。 | 对于 SQL Server、Oracle、ODBC 和 OLE DB: 使用连接字符串中定义的凭据。 如果未定义无人参与的执行帐户,则报表服务器上的连接将失败。 对于 Analysis Services: 如果未指定任何凭据,则即使定义了无人参与的执行帐户,连接也总会失败。 对于 XML: 如果定义了无人参与的执行帐户,则以匿名用户的身份连接;否则,连接将失败。 |
以编程方式设置凭证
您可以通过编写代码来设置凭据,以控制对报表和报表服务器的访问。 有关详细信息,请参阅数据源和连接方法。