http://www.cnblogs.com/by1455/archive/2010/06/09/1754839.html
转自 http://www.cnblogs.com/janet/archive/2010/05/30/1747420.html
Moss2010的BCS相对于2007的BDC在功能有很大程度的提升,可以很方便的集成现有系统的业务数据到MOSS平台,实现业务数据的增删改查功能;并且提供了多种方式,简单的数据表读写、.Net编程实现方式、WCF方式等。
先体验一下最简单的实现方式,准备SqlServer数据库,建一数据库表Customer,录入一些测试数据,如下:
用SharePoint Designer打开网站,点左段操作导航的“外部内容类型”,然后点顶部操作按钮“外部内容类型”,出现“新建外部内容类型”窗口,点击顶部操作按钮“操作设计视图”:
点“添加连接”添加一数据库连接
输入数据库服务器和数据库名称,连接数据库成功
右键点表名,选择“创建所有操作”
在这个界面可以对要显示的字段进行一些配置,然后点击完成,可以看到已经创建好的操作功能清单
点顶部操作的“保存”,保存该外部内容类型,然后点击“创建列表和表单”按钮,新建一列表绑定该BCS的数据连接内容类型
列表创建完毕后,点击左侧导航的“数据源”可以在“外部列表”类别中看到该列表
到这里我们通过BCS连接客户信息已经完成,下面把该信息展现到网站上,编辑页面,添加WEB部件,这一操作步骤可以在浏览器中进行,也可以直接在Designer中进行,在界面操作上要SharePointDesigner2007要好的多;在这里,个人习惯用了浏览器操作界面,编辑页面,添加“客户信息列表”部件
浏览页面发现错误“访问已被业务数据连接拒绝”错误
起初以为是没有数据库访问权限所致,检查后发现不是数据库问题,认为是BCS服务权限的问题,操作步骤
进入 管理中心--应用程序管理--管理服务应用程序
点击BDC服务链接,进入BDC配置界面
选择操作菜单“BDC模型”,可以看到我们已经创建的BDC模型清单
选择CRM这个模型,设置权限,测试时为了避免再出错,权限全给选了
刷新包含“客户信息列表”WebPart的页面,发现已经可以显示数据了,奇怪的是数据显示不正确
CRM数据库中的列一个都没显示出来,点其中一项进行修改,可以显示,可以断定,应该是视图的问题,修改WebPart,编辑视图,选择“读取列表”视图
发现数据正常显示
前面进行编辑WEB部件时的视图选取时,发现视图名称不太友好“新建外部内容类型 读取列表”,直接去修改一下,这个列表和传统的列表其实是一样的,只是数据列不保存在Moss库中而已,只保存了一个映射。进入“客户信息列表”页面,修改视图,创建视图和普通列表没什么区别。
发现一问题,数据表中“备注”字段是 text类型,在列表项编辑页面显示的是普通单行文本框,而没能映射成富文本框
而列表设置中的每一列都是只读的,暂时还没能找到便捷的映射方法
以上都没有提到如何提供凭证去跟数据库交互,提供方式如下:
http://www.cnblogs.com/yunliang1028/archive/2012/03/06/2381311.html在使用SharePoint Designer创建 BCS时,我们通常会使用 用户标识进行数据库连接。
这种方式,大多数情况下是数据库采用了windows认证模式,这样我们使用windows用户时,就可以查看外部数据。
但这种操作需要在数据中给 NT AUTHORITY\Authenticated Users 这个用户加 读写权限,网站用户才能操作外部数据。
那么如果我们不能在数据中添加这样一个用户,并且只有一个数据库的操作账号的时候,改如何处理呢?
这个时候 我们就需要用到 “使用模拟自定义标识进行连接”
这种方法有两个步骤,
第一步 需要在 SSS(Secure Store Service)中设置一个 用来访问数据库的账号和密码,
1. 打开 “管理中心”-》“管理服务应用程序”-》“Secure Store Service”
2. 点击 进入以后,点击 Ribbon 操作区域的 “新建”
3. 在新建画面输入相关信息
4. 点击下一步 ,字段名称,可以输入自己能记住,并且一目了然的名称,字段类型,选择“用户名”和“密码”
5.点击下一步,这个位置是一个必填项,输入一个管理账号即可。点击确定。
6. 这个时候,在sss中就会有一个 叫“Sa”的信息。在下拉菜单中,选中“设置凭据”
7. 在这个画面,输入登录数据库所用的用户名和密码,比如 sa 密码 123456
8. 点击确定。这个时候连接数据的凭据就算设置好了,
第二步 就需要在 BCS连接中配置连接属性
1. 打开 SharePoint Designer ,打开网站
2. 选择 “外部内容类型”
3. 新建一个 “外部内容类型”,这个步骤省略
4. 在“外部系统”的位置,单击 数据源定义操作的链接
5. 点击“添加连接”
6. 在连接类型中,选择“SQL Server”
7. 在连接配置画面中,需要选择“使用模拟自定义标识进行连接”,然后在“安全存储应用程序ID”的位置输入 sss的ID “Sa”
其他位置输入对应数据。
点击“确定”
8. 这个时候会弹出一个 对话框,这里面输入的就是实际要访问数据库的用户名和密码
输入以后点击“确定”
9.如果能有出现下面的数据视图,证明连接是成功的。
总结:由于今天有人问到,如果网站是匿名访问的,BCS的数据就没有办法读取了,被拒绝访问,
因为在SharePoint中匿名用户是没有任何用户组的,也不再“NT AUTHORITY\Authenticated Users”中,
那如果在BCS连接中使用了 “用户标识”的方法,匿名用户应该就不能访问了。
但如果是“使用模拟自定义标识进行连接”连接时,所有用户使用的都是同一个账户访问数据库,
理论上 匿名用户访问BCS时就不会有拒绝访问(因为没有测试过,所以只能是理论了,嘿)。
匿名用户,应该也是SharePoint By Design的一个问题。