SPS2010使用SQL表作为List

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,录入一些测试数据,如下:

SPS2010使用SQL表作为List_第1张图片

用SharePoint Designer打开网站,点左段操作导航的“外部内容类型”,然后点顶部操作按钮“外部内容类型”,出现“新建外部内容类型”窗口,点击顶部操作按钮“操作设计视图”:

SPS2010使用SQL表作为List_第2张图片

 

点“添加连接”添加一数据库连接

SPS2010使用SQL表作为List_第3张图片

输入数据库服务器和数据库名称,连接数据库成功

SPS2010使用SQL表作为List_第4张图片

右键点表名,选择“创建所有操作”

SPS2010使用SQL表作为List_第5张图片

在这个界面可以对要显示的字段进行一些配置,然后点击完成,可以看到已经创建好的操作功能清单

SPS2010使用SQL表作为List_第6张图片

点顶部操作的“保存”,保存该外部内容类型,然后点击“创建列表和表单”按钮,新建一列表绑定该BCS的数据连接内容类型

SPS2010使用SQL表作为List_第7张图片

列表创建完毕后,点击左侧导航的“数据源”可以在“外部列表”类别中看到该列表

SPS2010使用SQL表作为List_第8张图片

到这里我们通过BCS连接客户信息已经完成,下面把该信息展现到网站上,编辑页面,添加WEB部件,这一操作步骤可以在浏览器中进行,也可以直接在Designer中进行,在界面操作上要SharePointDesigner2007要好的多;在这里,个人习惯用了浏览器操作界面,编辑页面,添加“客户信息列表”部件

SPS2010使用SQL表作为List_第9张图片

浏览页面发现错误“访问已被业务数据连接拒绝”错误

image

起初以为是没有数据库访问权限所致,检查后发现不是数据库问题,认为是BCS服务权限的问题,操作步骤

进入 管理中心--应用程序管理--管理服务应用程序

SPS2010使用SQL表作为List_第10张图片

点击BDC服务链接,进入BDC配置界面

SPS2010使用SQL表作为List_第11张图片

选择操作菜单“BDC模型”,可以看到我们已经创建的BDC模型清单

SPS2010使用SQL表作为List_第12张图片

选择CRM这个模型,设置权限,测试时为了避免再出错,权限全给选了

SPS2010使用SQL表作为List_第13张图片

刷新包含“客户信息列表”WebPart的页面,发现已经可以显示数据了,奇怪的是数据显示不正确

SPS2010使用SQL表作为List_第14张图片

CRM数据库中的列一个都没显示出来,点其中一项进行修改,可以显示,可以断定,应该是视图的问题,修改WebPart,编辑视图,选择“读取列表”视图

SPS2010使用SQL表作为List_第15张图片

发现数据正常显示

SPS2010使用SQL表作为List_第16张图片  

前面进行编辑WEB部件时的视图选取时,发现视图名称不太友好“新建外部内容类型 读取列表”,直接去修改一下,这个列表和传统的列表其实是一样的,只是数据列不保存在Moss库中而已,只保存了一个映射。进入“客户信息列表”页面,修改视图,创建视图和普通列表没什么区别。

SPS2010使用SQL表作为List_第17张图片

发现一问题,数据表中“备注”字段是 text类型,在列表项编辑页面显示的是普通单行文本框,而没能映射成富文本框

SPS2010使用SQL表作为List_第18张图片

而列表设置中的每一列都是只读的,暂时还没能找到便捷的映射方法

SPS2010使用SQL表作为List_第19张图片 

以上都没有提到如何提供凭证去跟数据库交互,提供方式如下:

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”

SPS2010使用SQL表作为List_第20张图片

2. 点击 进入以后,点击 Ribbon 操作区域的 “新建”

SPS2010使用SQL表作为List_第21张图片

3. 在新建画面输入相关信息

SPS2010使用SQL表作为List_第22张图片

4. 点击下一步 ,字段名称,可以输入自己能记住,并且一目了然的名称,字段类型,选择“用户名”和“密码”

SPS2010使用SQL表作为List_第23张图片

5.点击下一步,这个位置是一个必填项,输入一个管理账号即可。点击确定。

SPS2010使用SQL表作为List_第24张图片

6. 这个时候,在sss中就会有一个 叫“Sa”的信息。在下拉菜单中,选中“设置凭据”

SPS2010使用SQL表作为List_第25张图片

7. 在这个画面,输入登录数据库所用的用户名和密码,比如 sa 密码 123456

SPS2010使用SQL表作为List_第26张图片

8. 点击确定。这个时候连接数据的凭据就算设置好了,

第二步 就需要在 BCS连接中配置连接属性

1. 打开 SharePoint Designer ,打开网站

2. 选择 “外部内容类型”

3. 新建一个 “外部内容类型”,这个步骤省略

4. 在“外部系统”的位置,单击 数据源定义操作的链接

SPS2010使用SQL表作为List_第27张图片

5. 点击“添加连接”

SPS2010使用SQL表作为List_第28张图片

6. 在连接类型中,选择“SQL Server”

SPS2010使用SQL表作为List_第29张图片

7. 在连接配置画面中,需要选择“使用模拟自定义标识进行连接”,然后在“安全存储应用程序ID”的位置输入 sss的ID “Sa”

其他位置输入对应数据。

点击“确定”

SPS2010使用SQL表作为List_第30张图片

8. 这个时候会弹出一个 对话框,这里面输入的就是实际要访问数据库的用户名和密码

输入以后点击“确定”

SPS2010使用SQL表作为List_第31张图片

9.如果能有出现下面的数据视图,证明连接是成功的。

SPS2010使用SQL表作为List_第32张图片

总结:由于今天有人问到,如果网站是匿名访问的,BCS的数据就没有办法读取了,被拒绝访问,

因为在SharePoint中匿名用户是没有任何用户组的,也不再“NT AUTHORITY\Authenticated Users”中,

那如果在BCS连接中使用了 “用户标识”的方法,匿名用户应该就不能访问了。

但如果是“使用模拟自定义标识进行连接”连接时,所有用户使用的都是同一个账户访问数据库,

理论上 匿名用户访问BCS时就不会有拒绝访问(因为没有测试过,所以只能是理论了,嘿)。

匿名用户,应该也是SharePoint By Design的一个问题。

你可能感兴趣的:(list)