在 SharePoint Server 中部署 Business Connectivity Services 本地解决方案
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
以下方案说明如何使用 SQL Server AdventureWorks 示例数据库在 Microsoft Business Connectivity Services (BCS) 中创建无代码业务解决方案。 您将学会如何:
配置需要安全访问外部数据源的帐户和组。
配置对外部数据源、外部内容类型和外部列表的权限。
创建和配置外部内容类型。
创建使外部数据可供用户使用的外部列表。
将外部列表连接到Microsoft Outlook,使外部数据在用户脱机时可用。
这些过程将帮助您部署哪些内容
Business Connectivity Services 是 SharePoint Server 和 Office 中的集中式基础结构,可用于将不在 SharePoint Server 和 Office 中的数据集成到 SharePoint Server 和 Office 中。 BCS 实现采用许多不同的形式,包括本地形式。 这些过程演示如何安装和配置 BCS,以将本地 SQL 数据源中的数据集成到 SharePoint Server 外部列表和 Outlook 中。 为了构建此方案,我们使用 AdventureWorks 示例 SQL 数据库。 该解决方案如下图所示。
图:本地 BCS 解决方案
用户来到 SharePoint 网站上的外部列表。 该外部列表使用用户的 Windows 凭据创建一个数据请求。
然后将该请求发送给 SharePoint 场中的 BDC 运行时。
BDC 运行时访问列表的外部内容类型(在 BDC 元数据存储中),以了解如何访问外部系统以及可以执行哪些操作。 通过使用用户的凭据或安全存储中的凭据(在外部内容类型中定义),BDC 运行时将该请求传递给可以处理请求的连接器,在本例中为 SQL 连接器。
SQL 连接器访问外部数据源并检索数据,然后应用外部内容类型中指定的所有格式和筛选。 随后通过请求链将数据传递回用户可与之交互的列表。
用户希望将此数据导出到便携计算机上的 Outlook 中,以便可以对外部列表使用"连接到 Outlook"功能使数据脱机。
ClickOnce 安装会在客户端上运行和安装所需的 BDC 模型。 这使 BDC 客户端运行时能够直接访问外部数据。
然后,Outlook 使用 BDC 模型中的配置连接到外部数据,将这些数据同步到 Outlook SharePoint 外部列表中,并设置为联系人列表格式。
之后,用户即可与联系人数据交互,并且用户所做的任何更改都可通过按需同步或六小时后的自动同步写回外部数据源。
部署解决方案
下面介绍了完全部署此方案的步骤。 某些过程在其他文章中。 根据需要提供链接。
在开始安装本地 Microsoft Business Connectivity Services (BCS) 方案之前,必须满足这些软件和基础结构要求。
具有 Web 应用程序和网站集的全功能 SharePoint Server 服务器场
正确配置 的业务数据连接服务服务应用程序
具有 Service Pack 1 (SP1) 和累积更新 2 或 SQL Server 2008 R2 的 SQL Server 2008 完全正常运行的实例
SharePoint Designer 2013
Outlook 2016 客户端
您具有一个帐户,该帐户具有管理 Business Data Connectivity Service 应用程序的权限
你有一个有权管理 Secure Store Service 服务应用程序的帐户
从适用于 SQL Server 的 Codeplex 下载下载 AdventureWorks 示例数据库 。 此数据库必须在 SQL Server 上安装并正常运行
创建 Active Directory 目录服务 (AD DS) 安全组,并添加将使用此 BCS 解决方案的用户,例如创建一个名为 AdventureWorksBCSUsers 的组
AdventureWorks 示例数据
AdventureWorks 示例数据库是由 Microsoft 开发和发布的。 AdventureWorks 示例数据库中预填充了虚拟公司 AdventureWorks Cycles 的大量虚拟数据。 我们在这里使用 AdventureWorks 示例数据库作为一个具体的示例,用于演示本地 BCS 方案的安装和配置。
如何下载和安装 AdventureWorks 示例数据库
在浏览器中,转到 AdventureWorks 示例数据库 并下载 AdventureWorks2008R2_Data.mdf 文件。
按照 SQL Server 示例自述文件 (en-US) 页的“AdventureWorks 2008 R2 示例数据库自述文件”部分中的过程安装 Adventure Works2008R2 示例数据库。
创建数据库登录
Microsoft Business Connectivity Services (BCS) 需要一个帐户,该帐户可用于访问外部数据源。 该帐户必须具有外部数据源的必需权限才能执行 BCS 解决方案可能要求的所有操作。 为了便于配置和持续管理,可以将一组 SharePoint Server 用户映射到外部数据源上的单个共享帐户。
在此过程中,将创建一个 SQL Server 登录名,然后将该登录名分配给 AdventureWorks 示例数据库中的用户帐户。 在后面的过程中,你将使用安全存储服务服务将一组 SharePoint Server 用户映射到单个共享帐户。
创建 SQL Server 登录名
启动 SQL Server Management Studio。
在 对象资源管理器中,依次展开 <数据库服务器名称>、 “安全性”和“ 登录名”。
右键单击“登录名” ,然后单击“新建登录名”。
在“ 登录名 ”框中,输入 SharePointGroupAccount。
选择“SQL Server 身份验证”,然后输入并确认密码。
在“默认数据库” 框中,选择 AdventureWorks2008R2,然后单击“确定”。
创建 AdventureWorks 数据库上的 SQL Server 用户
在“对象资源管理器”中,依次展开“数据库”、“AdventureWorks2008R2”、“安全性”和“用户”。
右键单击“用户”,然后单击“新建用户” 。
在“登录名” 下方,在预选中“用户名”框的情况下,在第一个框中输入 AdventureWorksUser
第二个框中,单击“ 浏览”,在 “选择登录名 ”对话框中,单击“ 浏览”,选择 SQL Server 帐户 SharePointGroupAccount,然后单击“ 确定” 两次。
在“数据库角色”成员身份下,选择 db_owner。
单击“确定”。
关闭 SQL Server Management Studio。
设置对 BCS 元数据存储的权限
BCS 元数据存储保存了外部内容类型、外部系统和适用于 BCS 服务应用程序的 BDC 模型定义。 在此过程中,您将配置对元数据存储及其包含的一切内容的管理权限。
设置对 Business Connectivity Services 元数据存储的权限
使用场管理员帐户或已委派权限管理业务数据连接服务应用程序的帐户打开 SharePoint 管理中心网站。
在“快速启动”中单击“应用程序管理”。
在“应用程序管理”页上的“服务应用程序”下,单击“管理服务应用程序”。
在服务列表中,选择在 SharePoint Server 中配置 业务数据连接服务应用程序 中创建 的业务数据连接服务应用程序的 行,然后单击 “管理 ”,然后单击“ 设置元数据存储权限”。
输入服务器场管理帐户以及任何其他委派管理员(如果有),然后单击“添加”。
对于作为 Business Data Connectivity Service 应用程序管理员的添加的每个帐户或组,依次选中“编辑”、“执行”、“在客户端中可选”和“设置权限”复选框。
选择“ 将权限传播到 BDC 元数据存储中的所有 BDC 模型、外部系统和外部内容类型”。这样做将覆盖现有权限 复选框。 有关在 BDC 元数据存储中设置权限的详细信息,请参阅 SharePoint Server 中的 Business Connectivity Services 安全任务概述。
单击“确定”。
注意
编辑是一种高特权权限,在业务数据连接元数据存储中创建或修改数据源、模型和外部内容类型时需要该权限。 查询外部内容类型 (需要执行权限,因为它授予) 创建、读取、更新、删除和查询权限。 “客户端”中的“可选”使用户能够创建新的外部列表,在“外部内容类型”选取器中选择外部内容类型,并使用“外部数据”Web 部件,而“设置权限”则允许用户为 BDC 服务本身设置权限。 为 BCS 规划权限非常重要,在授予“编辑”权限时要小心。
配置 Secure Store Service
安全存储服务存储Microsoft Business Connectivity Services 用于访问 AdventureWorks 外部数据源的凭据,并在用户帐户与用于访问外部数据源的凭据之间执行凭据映射。
在此过程中,请执行 在 SharePoint 2013 预览版中配置安全存储服务 一文中的所有步骤。 必须自始至终使用这些参数执行“在 SharePoint 2013 中配置安全存储服务”一文中的步骤。
为本地业务连接服务配置安全存储服务
使用以下参数执行 在 SharePoint 2013 预览版中配置 Secure Store Services 中的所有步骤。
使用具有服务器场管理员权限的帐户,打开安全存储服务位于的服务器场的 SharePoint 管理中心网站。
在“在 SharePoint 2013 预览版中配置安全存储服务”一文中,使用这些参数执行 “在 SharePoint Server 中配置安全存储” 部分中的所有过程
对于“注册托管帐户”,用户名键入在 SharePoint 2013 中部署 Business Connectivity Services 本地解决方案的先决条件过程中创建的服务帐户的名称。
不要选中“启用自动更改密码”框。
执行“启动安全存储服务”过程
使用这些参数执行“创建安全存储服务应用程序”过程
在“服务应用程序名称”框中,输入希望该服务在“管理服务应用程序”页上显示为的名称。
在“数据库”区域中,保留“数据库服务器”、“数据库名称”和“数据库身份验证”的预填充的值(即“Windows 验证(推荐)”),除非有特定设计需求,需要更改这些值。
如果已配置 SQL Server 数据库镜像,并且想要在镜像中包含安全存储服务,请在“故障转移数据库服务器”框中提供 故障转移数据库服务器 的名称。
对于“可配置”下拉框,请选择在此过程前面部分中注册为管理帐户的帐户。
使用以下参数执行 “使用安全存储加密密钥 ”部分中的步骤:
不要执行“刷新加密密钥”子部分中的过程
阅读在安全存储中存储凭据部分,并使用这些参数执行创建目标应用程序过程。
在“目标应用程序 ID”框中,键入目标应用程序的字符串;该字符串不是显示名称。 例如,键入 AWTargetAppID。
在“ 显示名称 ”框中,输入所需的显示名称,例如 Adventure Works 目标应用程序 ID。
在“目标应用程序类型”下拉框中,选择“组”(它表示许多凭据到一个凭据的映射)。 在本例中,不需要“目标应用程序页 URL”,会自动选择“无”。
在 “创建新的安全存储目标应用程序 ”页上的 “字段名称”下,将 “Windows 用户名” 更改为“SQL 用户名”,将 “Windows 密码” 更改为“SQL 密码”。
在 “字段类型” 下,将 “Windows 用户名” 更改为“用户名”,并将 “Windows 密码” 更改为“密码”。
在“目标应用程序管理员”中,添加希望作为目标应用程序的管理员的帐户。 注意,默认情况下场管理员具有访问权限。
在“成员”框中,添加希望允许其访问外部数据源的用户的名称。 对于此示例,请使用在 SharePoint 2013 中部署 Business Connectivity Services 本地解决方案的先决条件中创建的 AdventureWorksBCSUsers 安全组。
使用以下参数执行 设置安全存储目标应用程序 凭据过程中的步骤:
在“ SQL 用户名 ”框中,键入 AdventureWorksUser ,这是在 SharePoint 2013 中为 Business Connectivity Services 本地解决方案创建数据库登录名中创建的名称 SQL Server 帐户。
在“ SQL 密码”和“ 确认 SQL 密码 ”框中,键入该帐户的密码,该密码实际上是在 SharePoint 2013 中为 Business Connectivity Services 本地解决方案创建数据库登录名中创建的 SharePointGroupAccount 帐户的密码。
创建外部内容类型
这些过程可指导您逐步完成使用 SharePoint Designer 2013(而不编写任何代码)为 Business Connectivity Services 构建外部内容类型。 你将了解如何发现 SQL Server 数据库、连接到数据库表,然后返回所需的数据。 您将根据 AdventureWorks 示例数据库中的“客户”视图创建一个名为“客户”的外部内容类型。 本文使用 如何:在 SharePoint 2013 预览版中创建 SQL Server 的外部内容类型中的过程。 必须打开该文章,并使用本文匹配章节中提供的参数执行其中的步骤。
定义常规信息
创建一个名为 AWcustomers、显示名称为 AdventureWorks Customers 的新外部内容类型。
定义常规和 Office 行为
将“Office 项类型”设置为“联系人”。 “Office 项类型”可确定希望附加到外部内容类型的 Outlook 行为。 在本例中,此 AWCustomer 外部内容类型的行为与 Outlook 中的本机联系人项类似。
在“脱机同步外部列表”复选框中,确保选中了默认值“启用”。
注意
如果禁用此选项,则 SharePoint“连接到 Outlook”功能区命令对外部列表不可用。
与外部数据建立连接
使用 SQL Server 作为外部数据源类型添加连接。
在“设置数据库服务器”框中,输入 <数据库服务器> 的名称,并在 “设置数据库名称” 框中输入 AdventureWorks2008R2。 (可选)在“名称”框中,输入 AdventureWorks 示例数据库。
选择“使用模拟自定义标识进行连接”。
在 “安全存储应用程序 ID ”框中,输入 AWTargetAppID。
警告
如果系统提示输入 AWTargetAppID 的用户名和密码,可能是因为创建 SharePointGroupAccount SQL 登录名时,未取消选中 “用户必须在下次登录时更改密码” 选项。 若要解决此问题,必须通过 SQL 查询更改密码 ALTER LOGIN <LoginName> WITH PASSWORD = '<originalpassword>'
选择表、视图或例程和定义操作
- 在“AdventureWorks 示例数据库”中,选择“vIndividualCustomer”视图并右键单击“创建所有操作”。
注意
创建所有操作是定义所有基本操作方法的便捷方法, ( 创建、 读取、 读取列表、 更新和 删除) 。
提示
始终仔细阅读“错误和警告”窗格中的消息。 它们可提供确认操作或解决任何问题的有用信息。
Add columns
在“ 参数配置 ”对话框中,默认选择所有列。 若要删除不必要的列,请清除以下列旁边的复选框: 后缀 和 人口统计。
对于 BusinessEntityID,请选择“映射到标识符”值。
注意
取消选中“必需”框阻止其更新,但选中“只读”复选框,该选项是检索项目以便您能够更新其他字段所需的。
映射 Outlook 字段并设置外部项选取器控件
对于 FirstName、LastName、EmailAddress 和 PhoneNumber 字段,执行以下操作:
单击并突出显示该字段。
在“属性”下的 “Office 属性 ”下拉列表中,选择相应的匹配字段: “名字 ”到“名字 ” (“FirstName) ”, “姓氏 (姓氏”) **,“ 电话号码 ”到“ 主电话号码” (PrimaryTelephoneNumber) , “EmailAddress ”到 EmailAddress1 (Email1Address) 。
注意
根据编号,未映射的字段显示为扩展属性。 对于 2 到 5 个字段,它们作为 相邻 项列出,这意味着它们将追加到 Outlook 窗体默认页面底部的窗体区域。 对于六个或更多字段,它们被列为 “独立 ”,并作为新页面添加到Microsoft Outlook。
对于以下字段(BusinessEntityID、FirstName、LastName 和 EmailAddress),单击并突出显示该字段,然后在“属性”下,单击“在选取器中显示”。
定义筛选器
创建名为 ByRegion 的 比较 筛选器,使用 CountryRegionName 作为值。
在 “属性”下的 “默认值”旁边,输入“加拿大”。
创建名为 AWLimit 的限制 筛选器,将 BusinessEntityID 用于 筛选器字段
将默认值设置为 200
提示
单击“错误和警告”窗格,确保再没有错误和警告。
为外部列表设置“标题”字段并完成外部内容类型
- 将 BusinessEntityID 设置为“标题”,并保存外部内容类型。
配置对外部内容类型的权限
配置用户对外部内容类型的访问权限和权限:
设置对外部内容类型的权限
打开站点的管理中心页面。
在“快速启动”中单击“应用程序管理”。
在“应用程序管理”页上的“服务应用程序”下,单击“管理服务应用程序”。
在服务列表中,单击业务数据连接 (BDC) 服务。
单击“ AWCustomers”。
在功能区上,单击“ 设置对象权限”。
输入要向其授予权限的用户帐户,然后单击“ 添加”。 对于此示例,您将添加在 SharePoint 2013 AdventureWorksBCSUsers 中 部署 Business Connectivity Services 本地解决方案的先决条件中创建的安全组。
选择刚添加的用户帐户,然后选中“ 执行 ”复选框。
选中“ 将权限传播到 BDC 元数据存储中的所有 BDC 模型、外部系统和外部内容类型 ”复选框以覆盖现有权限。
单击“确定”。
外部内容类型现在可用于 SharePoint 和 Office 产品,供相应用户使用。
创建外部列表
外部列表是基于外部数据的 SharePoint 解决方案的关键构建基块。 可通过使用 SharePoint 列表这种熟悉的体验来读取和写入外部数据。 外部列表的外观和行为与本机列表非常类似,但其行为还是有一些区别的。 例如,可创建视图和使用通过公式计算的值,但无法附加文件或跟踪版本。 对于本练习,您可在浏览器中创建外部列表,因为这是一种常见的方法。 本文使用在 Office.com 上创建外部列表中的 过程。 必须打开该文章,并使用本文匹配章节中提供的参数执行其中的步骤。
创建外部列表
打开 “创建外部列表”
使用 AWCustomers 外部内容类型创建名为 AdventureWorksCustomers 的外部列表。
创建外部列表的视图
为外部列表 AdventureWorksCustomers 创建视图。 对于本例,请使用 ByRegion数据源筛选器。
使其成为默认视图,然后选择自己的“排序”、“筛选器”和“限制”值。
管理用户权限
在你或适当的用户创建了外部列表后,请务必确保为其他用户设置适当的权限。 如果包含外部列表的子网站从其父网站继承权限,那么您可能无意间向不恰当的用户提供了权限。 在本例中,为 AdventureWorksBCSUsers 组提供了权限。
管理用户对外部列表的权限
在“列表”选项卡上的“设置”组中,单击“列表设置”。
在“权限和管理”下,单击“此列表的权限”...
根据规划对此列表应用权限。
下表总结了 SharePoint 用户组的默认外部列表权限:
名称 | 权限级别 |
---|---|
Excel Services 查看者 |
仅查看 |
<网站名称> 成员 |
编辑 |
<网站名称> 所有者 |
完全控制 |
<网站名称> 访问者 |
阅读 |
将外部列表连接到 Outlook
外部列表包含映射到为其启用了外部列表 脱机同步 Microsoft Outlook 联系人的客户数据,因此您可以将列表与 Outlook 2016 连接。 连接后,您可使用熟悉的 Outlook 用户界面查看、编辑和打印数据。 本文镜像了将 外部列表连接到 Outlook on Office.com 中的过程。 有关将外部列表连接到 Outlook 的详细信息,请参阅该文章。
将外部列表与 Outlook 同步
打开包含外部列表的 SharePoint Server 网站。 在功能区的“列表”选项卡上的“连接和导出”组中,单击“连接到 Outlook”。
在 “Microsoft Office 自定义安装程序 ”对话框中,单击“ 安装”。安装过程应需要一两分钟。
安装完成后,单击“关闭”。
验证 Outlook 中外部数据的脱机访问和同步
脱机更新客户数据并联机刷新
若要使 Outlook 2016 脱机,请单击“ 发送/接收”,然后在 “首选项” 组中,单击“ 脱机工作”。
对 AdventureWorks 客户之一进行更改或两次更改。
若要使 Outlook 2016 重新联机,请单击“ 发送/接收”,然后在 “首选项” 组中,单击“ 联机工作”。
若要同步数据,请在导航窗格中右键单击“<工作组网站名称> AWCustomers”外部列表,然后单击“立即同步”