在使用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的一个问题。