码迷,mamicode.com
首页 > 其他好文 > 详细

[原创]跨域授权访问SSAS

时间:2014-09-01 17:15:03      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   ar   文件   数据   2014   art   问题   

SSAS的权限控制是基于Role进行,而Role的成员只能是windows用户或域用户,不像SQL Server可以创建db级别的用户,如果你是以Excel作为OLAP客户端的话麻烦就来了,部署SSAS的服务器多数情况下是和客户端PC不在同一个域环境的,防火墙又不方便做domain trust,由此衍生的主流解决方案如下:

1. http方式访问,如果配置的web服务器是匿名验证,就没有任何权限控制可言,所有访问客户端的权限都是一样的

2. netonly runas,原理是在excel进程创建之前就把credential信息写入startupinfo里,之后这个excel进程就可以登陆的用户身份访问SSAS,缺点是用户每次新建excel文件都需要进行一次登陆授权,而且在双击打开已有的excel report时会发现无法修改更新pivot table,因为此时的excel进程是没有登陆授权的,就用户体验而言真的是不胜其烦

3. 配置客户端windows用户密码和SSAS服务端用户密码一致,这个方案貌似完美的解决了以上方案的问题,可以完整的配置用户权限,终端用户无需每次都验证身份,然而实际生产环境还是会造成一些不必要的麻烦,例如客户端用户修改了密码,造成和服务端同名用户的密码不一致,那么访问权限也就被终止了

下面要介绍的是笔者在项目中用的解决方案,一个用vsto开发的excel插件,具备跨域登陆授权功能,后续还会逐步扩展集成一些在OLAP分析中非常有用的功能,有时间的话会开几个专题详述具体功能,此篇只讲跨域登陆授权

首先需要配置服务端开放2383端口给客户端访问(如果服务器安装了多个sql实例的话,可能你要配置的ssas服务端开放端口不是默认的2383),如下图所示在客户端验证端口访问正常

bubuko.com,布布扣

在服务端创建两个windows用户,并创建两个SSAS Role, 分别授权访问不同的Country

bubuko.com,布布扣

bubuko.com,布布扣

客户端我用的是excel2010,理论上兼容excel2013,以后有时间会做一些兼容性测试,安装的插件如下图(插件下载地址在文章最下面)

bubuko.com,布布扣

首先使用source config配置一个或多个cube数据源,并在上面的下拉框控件中选中当前数据源

bubuko.com,布布扣

然后点击new pivottable按钮,如果是第一次使用,会弹出登陆窗口,输入SSAS服务端的用户密码,支持windows用户和域用户

bubuko.com,布布扣

如果选中了Logon窗口下面的checkbox并确认登陆,那么这个登陆的身份将和PC绑定,无论什么时候打开excel都默认使用这个身份

登陆验证完后会以当前身份新建一个数据透视表,查看权限是否正常:

bubuko.com,布布扣

我们再点击X按钮切换登陆用户为test2,此时不选中绑定当前PC

bubuko.com,布布扣

确认登陆后数据自动刷新后的结果如下

bubuko.com,布布扣

保存Excel文件,再打开时会自动刷回test1身份的数据

 

现提供免费下载,地址如下:

http://pan.baidu.com/s/1c05urok

 

[原创]跨域授权访问SSAS

标签:blog   http   使用   ar   文件   数据   2014   art   问题   

原文地址:http://www.cnblogs.com/xpivot/p/3949308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!