规划 Excel Services 数据源和外部连接

 

适用于: Excel Services (SharePoint 2010), SharePoint Server 2010

上一次修改主题: 2011-10-18

若要配置 Microsoft SharePoint 2010 产品以使 Excel Services 应用程序上加载的工作簿成功刷新外部数据,必须理解 SharePoint Server 2010 与 Excel Services 应用程序之间的关系和相关性。

本文提供的指导可帮助您配置下列 SharePoint Server 2010 应用程序服务器组件:

  • Excel Services

  • Secure Store Service

本文内容:

  • 连接和 Excel 工作簿

  • 数据提供程序

  • 外部数据身份验证

  • 数据连接库和托管连接

  • Excel Services 安全性和外部数据

连接和 Excel 工作簿

使用外部数据的每个 Excel 工作簿都包含一个到数据源的连接。该连接包含与外部数据源建立通信并从中检索数据所需的全部信息。其中包括:

  • 连接字符串(一个字符串,指定要连接到哪个服务器以及如何连接)。

  • 查询(一个字符串,指定要检索哪些数据)。

  • 获取数据所需的任何其他特定信息。

嵌入连接和链接连接

Excel 工作簿可包含嵌入连接和链接连接。嵌入连接作为工作簿的一部分在内部存储。链接连接作为单独的文件在外部存储,可由工作簿引用。

嵌入连接和链接连接在功能上相同。二者均可正确地指定成功连接到数据所需的全部参数。可以集中存储、保护、管理和重用链接连接文件。规划一种整体方法使大量用户连接到外部数据时,链接连接文件是一个不错的选择。有关详细信息,请参阅数据连接库和托管连接。

对于单个连接,工作簿可以使用嵌入的连接信息副本和指向外部连接文件的链接。可将连接配置为始终使用外部连接文件以刷新来自外部数据源的数据。在本例中,如果无法检索外部连接文件或者它未能建立到数据源的连接,则工作簿无法检索数据。如果连接未配置为仅使用外部连接文件,Excel 将尝试使用嵌入的连接副本。如果此操作失败,Excel 会尝试使用连接文件连接到外部数据源。指定只能使用连接文件建立到外部数据源的通信链接,这是一项功能,且支持数据连接库和托管连接中所述的托管连接方案。

Excel Services 可使用来自外部连接文件的连接和嵌入工作簿的连接。外部连接文件有一些限制。有关详细信息,请参阅 Excel Services 安全性和外部数据。如果服务器上允许这两种类型的连接,则其行为与前面描述的 Excel 的行为相同。

出于安全目的,Excel Services 应用程序可以配置为只允许来自连接文件的连接。在这种配置中,将对服务器上加载的工作簿忽略所有嵌入连接,且只有服务器管理员信任指向有效连接文件的链接时才尝试连接。有关详细信息,请参阅受信任数据连接库。

备注

有多种连接文件,而 Excel Services 应用程序只处理 Office 数据连接文件 (.odc)。

数据提供程序

数据提供程序是客户端应用程序(如 Excel 和 Excel Services 应用程序)用来连接到特定数据源的驱动程序。例如,使用特殊的 MSOLAP 数据提供程序连接到 Microsoft SQL Server 2008 Analysis Services。数据提供程序将作为连接的一部分在连接字符串中指定。在本文中,您无需深入了解数据提供程序,但必须了解以下概念:

  • 数据提供程序通常是几组经过充分测试的、稳定的库,可用于连接到外部数据。

  • Excel Services 所使用的任何数据提供程序都必须得到服务器管理员的明确信任。有关如何将新的数据提供程序添加到受信任提供程序列表中的信息,请参阅管理 Excel Services 连接

    备注

    默认情况下,Excel Services 应用程序信任许多已知的、稳定的数据提供程序。大多数情况下,不需要添加新的数据提供程序。通常要为自定义解决方案添加数据提供程序。

  • 数据提供程序可处理查询、分析连接字符串和其他特定于连接的逻辑。此功能并非 Excel Services 应用程序的一部分。Excel Services 应用程序无法控制数据提供程序的行为。

外部数据身份验证

数据服务器要求对用户进行身份验证,即向服务器确认用户身份。接下来是授权,即告知服务器该用户可执行哪些相关的操作。必须进行身份验证,才能使数据服务器执行授权或实施安全限制,防止数据泄露给任何未经授权的用户。

Excel Services 应用程序必须告知数据源哪个用户正在请求数据。此举通常表现为用户在浏览器中查看 Excel 报表。本节介绍 Excel Services 应用程序与外部数据源之间的身份验证。下图显示了此级别上的身份验证。右侧的箭头显示从运行 Excel Calculation Services 的应用程序服务器到外部数据源的身份验证链接。

Excel Services - 外部数据的身份验证

备注

Excel Services 应用程序使用委派的 Windows 标识访问外部数据源。因此,外部数据源必须位于与 SharePoint Server 2010 服务器场相同的域中或者 Excel Services 应用程序必须配置为使用 Secure Store Service。如果未使用 Secure Store Service 且外部数据源未在同一域中,则对外部数据源进行的身份验证将失败。有关详细信息,请参阅“服务体系结构规划”中的有关访问外部数据源的服务的规划注意事项

有多种执行身份验证的办法。本文着重讨论 Excel Services 应用程序支持的三种方法:

  • 集成 Windows 身份验证

  • Secure Store Service

Excel Services 应用程序根据连接属性确定身份验证的种类。此属性必须明确设置,可使用 Microsoft Excel 2010 客户端进行设置。如果缺少身份验证类型,则使用默认的 Windows 身份验证。

集成 Windows 身份验证

SharePoint Server 2010 使用基于声明的身份验证。因此,Excel Services 应用程序也使用基于声明的身份验证。集成 Windows 身份验证现在专用于 SharePoint Server 2010 中的 IIS 身份验证设置。还需注意,当 Excel Services 应用程序连接的数据源不在承载 Excel Services 应用程序的服务器上,而在其他服务器上时,必须配置 Kerberos 约束委派。换言之,当 Excel Services 应用程序连接到外部数据源时,必须配置和部署 Kerberos 约束委派。

此方法使用 Windows 用户身份对数据源进行身份验证。在本文中,了解操作系统执行此操作的特定机制(如 NTLM 或约束委派)并不重要。当您使用 Excel 客户端连接到数据源(如 SQL Server 2008 Analysis Services)时,Windows 身份验证通常是访问外部数据的默认方法。

在大多数企业环境中,Excel Services 应用程序将作为服务器场的一部分安装;该场具有前端 Web 服务器、后端 Excel Services 应用程序服务器和数据源,这些都在不同的计算机上运行(如外部数据身份验证中的示意图所示)。这意味着,需要委派或 Kerberos 协议(建议使用约束委派),以允许使用 Windows 身份验证的数据连接。这是因为,必须使用委派确保通过可信、安全的方式在不同计算机之间传递用户身份。在服务器场部署中,除非正确配置了 Kerberos 协议,否则这些类型的连接不能在 Excel Services 应用程序上正常工作。有关如何为 Excel Services 应用程序配置 Kerberos 约束委派的详细信息,请参阅 Microsoft 下载中心页面:为 Microsoft SharePoint 2010 产品配置 Kerberos 身份验证(该链接可能指向英文页面)

Secure Store Service

SharePoint Server 2010 通过包括 Windows 服务和安全凭据数据库来使用 Secure Store Service 身份验证。Excel Services 应用程序支持可插入 Secure Store Service 功能,您可以使用该功能实现自己的 Secure Store Service 提供程序。SharePoint Server 2010 通过 Excel Services 应用程序提供默认的 Secure Store Service 提供程序。

Secure Store Service 是个集中式数据库,通常用来存储可供应用程序对其他应用程序进行身份验证时使用的凭据(成对的用户 ID 和密码)。在这里,Excel Services 应用程序依赖 Secure Store Service 存储和检索凭据,以便在对外部数据源进行身份验证时使用。

每个 Secure Store Service 项都包含一个应用程序 ID;该 ID 可作为查阅项,用来检索相应的一组凭据。每个应用程序 ID 都可拥有权限集;这样,只有特定用户或组可以访问为该应用程序 ID 存储的凭据。

在提供了应用程序 ID 后,Excel Services 应用程序可为要访问工作簿(通过浏览器或使用 Excel Web Services)的用户从安全存储数据库检索凭据。Excel Services 应用程序将使用这些凭据对数据源进行身份验证并检索数据。

备注

必须为连接指定应用程序 ID。有关如何指定应用程序 ID 的信息,请参阅将 Excel Services 与安全存储一起使用 (SharePoint Server 2010)

这种身份验证方法意味着,不执行任何凭据检索操作,也不对连接的身份验证采取任何特殊措施。例如,Excel Services 应用程序不会尝试委派凭据,也不会尝试从安全存储数据库检索为用户存储的凭据。相反,选择“无”作为身份验证方法时,将作为进程帐户连接到安全存储数据库并检索要使用的凭据。在这些情况下,Excel Services 应用程序将连接字符串传递给数据提供程序并允许提供程序处理身份验证。

从更实际的角度讲,这意味着,连接字符串通常会指定用户名和密码以便连接到数据源。但是,连接字符串有时会指定必须使用集成安全性。也就是说,应使用发出请求的用户或计算机的 Windows 身份连接到数据源。在这两种情况下,首先模拟无人参与帐户,然后再建立数据源连接。连接字符串和提供程序决定授权方法。此外,也可基于在连接字符串中找到的凭据或模拟的无人参与帐户的 Windows 身份进行授权。有关详细信息,请参阅无人参与帐户。

数据连接库和托管连接

数据连接库是一个 SharePoint Server 2010 列表,设计用于存储连接文件,然后可由 Office 2010 应用程序(如 Excel Services 应用程序)引用。

数据连接库使客户能够集中管理、保护、存储和重用数据连接。

重用连接

因为数据连接库位于 SharePoint Server 2010 中的一个已知位置,且显示友好的业务名称和说明,所以用户可重用其他用户所创建的连接,并根据自己的目的进行配置。有经验的信息工作者或数据专家可以创建连接,其他用户可重用这些连接,而无需了解有关数据提供程序、服务器名称或身份验证的详细信息。数据连接库的位置甚至可以发布到 Office 客户端,以便在 Excel Services 应用程序或使用数据连接库的任何其他客户端应用程序中显示数据连接。有关详细信息,请参阅管理 Excel Services 连接

管理连接

因为工作簿包含指向数据连接库中文件的链接,所以如果连接发生更改(如服务器名称或安全存储应用程序 ID),则只需更新一个连接文件,而非可能涉及到的成百个工作簿。工作簿将在下次使用该连接文件在 Excel 或在 Excel Services 应用程序中刷新数据时自动获取连接更改。

保护连接

数据连接库是一个 SharePoint 列表,可支持 SharePoint Server 2010 所支持的所有权限,包括每个文件夹和每个项目的权限。这样可在服务器上实现一种优势 — 数据连接库可成为受到严格控制的锁定数据连接存储。许多用户可对它拥有只读访问权限,以便他们可以使用数据连接,但可防止他们添加新的连接。通过结合使用访问控制列表 (ACL) 与数据连接库,并只允许受信任的作者上载连接,数据连接库将成为受信任连接的存储。受信任连接是指已知不包含恶意查询的连接。

Excel Services 应用程序可以配置为只从服务器管理员明确信任的数据连接库加载连接文件,并阻止加载所有嵌入的连接。在这种配置中,Excel Services 应用程序使用数据连接库为数据连接应用另一层安全保护。

数据连接库甚至可以与 SharePoint Server 2010 中新的查看者角色一起使用,从而使那些连接可以用于刷新 Excel Services 应用程序上加载的工作簿。如果应用了查看者角色,则用户无法从客户端应用程序(如 Excel)访问连接文件的内容。因此,连接文件的内容是受保护的,同时仍可用于在服务器上刷新的工作簿。

Excel Services 安全性和外部数据

Excel Services 应用程序有很多层的安全保护。以下各小节只介绍与外部数据访问直接相关的概念。

受信任文件位置

Excel Services 应用程序只从受信任文件位置加载工作簿。受信任文件位置实质是一个目录(它可能包括所有子目录),管理员明确允许从中加载工作簿。这些目录被添加到 Excel Services 应用程序内部的一个列表中。此列表称为受信任文件位置列表。

受信任位置可能会为从中加载的工作簿指定一组限制。从某个受信任位置加载的所有工作簿都将遵守该受信任位置的设置。以下简要列出影响外部数据的受信任位置设置:

  • 访问外部数据的方式。此设置包括如下选项:

    • 不允许数据访问(默认)。

    • 只能访问 SharePoint Server 2010 数据连接库中的连接文件。

    • 除了数据连接库中的连接文件,还能访问工作簿中的嵌入连接。

  • 是否显示查询刷新警告。

  • 在工作簿打开时无法刷新外部数据的情况下,是否使工作簿加载失败。在工作簿缓存数据结果将根据查看工作簿的用户身份发生变化的情况下,将使用此设置。目的是要隐藏这些缓存结果,并确保查看工作簿的任何用户都只能看到针对该用户的数据。在这种情况下,该工作簿将在打开时尝试刷新。可以为每个连接设置在打开后即刷新。如果刷新失败,则不向无法在 Excel 客户端打开它的用户显示该工作簿。

    备注

    仅当工作簿被 SharePoint Server 2010 中的查看者角色权限锁定时,此设置才有效,因为只要用户能够在 Excel 中直接打开工作簿,就总能看到缓存的数据结果。

  • 外部数据缓存到期时间。数据会在服务器上的多个用户之间共享,以扩大规模和提高性能;这些缓存的生存时间是可调整的。这适用于尽可能减少查询执行的情况,因为执行查询可能需要很长时间。在这些情况下,数据经常每日、每周或每月更改一次,而不是每分钟或每小时就更改一次。

受信任数据连接库

与使用工作簿文件一样,Excel Services 应用程序只从 SharePoint Server 2010 受信任数据连接库加载连接文件。受信任数据连接库是服务器管理员明确添加到内部受信任列表的一个库。有关数据连接库如何允许管理员保护和管理连接文件的信息,请参阅数据连接库和托管连接。有关如何信任数据连接库以便用于 Excel Services 应用程序的信息,请参阅管理 Excel Services 连接

受信任数据提供程序

Excel Services 应用程序只使用添加到内部受信任提供程序列表的外部数据提供程序。这是一种安全机制,可防止服务器使用管理员不信任的提供程序。有关如何信任数据提供程序的相关信息,请参阅管理 Excel Services 连接

无人参与帐户

无人参与帐户是个特殊帐户。在选择“无”身份验证时,只要 Excel Services 应用程序试图建立连接,它就会模拟该帐户(不管数据源是否使用集成 Windows 身份验证)。因为 Excel Services 应用程序无法控制数据提供程序,且不能直接分析提供程序特定的连接字符串,所以它必须减轻利用 Excel Services 应用程序自身身份连接到数据源所带来的安全威胁。无人参与帐户即被用来减轻这一威胁。

Excel Services 应用程序经常使用权限很大的帐户运行,而此级别的权限不适用于只想查看数据的用户。当外部数据身份验证设置为“无”或“Secure Store Service”时,Secure Store Service 应用程序 ID 不存储 Windows 凭据,因此会在尝试连接数据之前模拟无人参与帐户。因为无人参与帐户不应对数据源具有权限,这样可防止使用特权帐户意外或恶意地连接数据源。

如果无人参与帐户具有对数据源的访问权限(当身份验证类型设置为“无”时),可以使用无人参与服务帐户的凭据成功地建立连接。设计特意用此帐户连接数据的解决方案时要多加注意。这是一个单一帐户,可供服务器上的每个工作簿使用。任何在 Excel Services 应用程序上加载工作簿并将身份验证类型设置为“无”的用户都可以使用服务器查看该数据。在某些情况下,这可能是必需的。但是,Secure Store Service 是按用户或按用户组管理密码的首选解决方案。