XPivot用户手册之【跨域鉴权】

0

QQ图片20150216101252.png

SSAS之跨域鉴权从来就是件麻烦事,因为SSAS的权限控制是基于windows用户创建的Role, 所以关于服务端鉴权有个原则问题,也是很多新手很容易混淆的问题,就是被授权的用户必须是SSAS服务端能够识别的服务端用户,而不是你的访问客户端用户,所以官方鼓励的是服务端和客户端在同一个域内,服务端可以很方便的对域名授权,而现实中很多案例是服务端和客户端不在同一个域内,甚至两者都不在任何域内,那么主流的解决方案有以下几种(此处仅讨论excel客户端的方案):
  1. netonly runas,原理是在excel进程创建之前就把服务端账户credential信息写入startupinfo里,之后这个excel进程就可以服务端用户身份访问SSAS,缺点是用户每次新建excel文件都需要进行一次netonly runas登陆鉴权,而且在双击打开已有的excel report时会发现无法修改更新pivot table,因为此时的excel进程是没有登陆授权的,就用户体验而言真的是不胜其烦,有兴趣的可以参考https://technet.microsoft.com/ ... .aspx
  2. 配置客户端windows用户密码和SSAS服务端用户密码一致,以达到欺骗服务端完成鉴权的目的,这个方案貌似完美的解决了上个方案的问题,可以完整的配置用户权限,终端用户无需每次都验证身份,然而实际生产环境还是会造成一些不必要的麻烦,例如客户端用户修改了密码,造成和服务端同名用户的密码不一致,那么访问权限也就被终止了
  3. http方式访问,如果配置的web服务器是匿名验证,就没有任何权限控制可言,所有访问客户端的权限都是一样的; 如果配置的是Basic验证(没有域环境的时候貌似只能用Basic代替Windows验证),安全性方面也不太放心
  4. excel客户端访问SSAS,除了以上几种方案,其实也是支持直接访问的,需要开通服务端的2383端口(默认的ssas端口)给客户端访问,默认的访问向导输入服务端账户密码进行到最后一步新建pivottable时会报传输层异常,是因为这一步丢失了账户密码信息.

XPivot插件支持以上所有登陆鉴权方式, 下面先看下第一步,配置数据源【Source Config】
QQ图片20150216103448.png


打开数据源配置会看到以下几项配置信息作为一组数据源,如果需要配置多组数据源的话,请用竖线|分隔,提交配置后就会在上面的下拉框里罗列所有的数据源组
QQ图片20150216103416.png


Cube=Adventure Works; 此项配置内容必须是Cube的名称,见图高亮处
QQ图片20150216103915.png

Cube Data Source=.; 此项配置是Cube的数据源,如果是同一域内或者第四种访问方式只需配置ip即可,如果是http访问方式,需要配置为完整的http://....msmdpump.dll路径
Cube Initial Catalog=AdventureWorksDW2012Multidimensional-SE; 此项配置是ssas数据库实例名,见上图的Databases下面的数据库名
Cube Integrated Security=SSPI;此项配置可选,如果设置了此项,XPivot将忽略登陆账户信息,直接使用当前windows用户访问ssas
DW Data Source=.; 以下配置项均为可选项,配置的是DW数据库的连接信息,如果不配置的话就只能访问SSAS Cube, XPivot里与DW相关的功能即无效
DW Initial Catalog=AdventureWorksDW2012;
DW Integrated Security=SSPI; 此配置项可选,如果未做设置,就必须先登陆XPiovt才可正常使用DW相关的功能,需要注意的是,如果Cube Integrated Security和DW Integrated Security均未做设置,为了使登陆XPivot的身份能够顺利访问DW和Cube,必须在服务端配置Cube和DW使用同样的账户密码,只不过前者是windows用户,后者是db用户

QQ图片20150216105225.png

XPivot的登陆窗口很简单,输入账户密码即可,帐户名如果是域名的话,需要输入完整的域名,例如:DomainName\DomainUser,图中所示的test1是个windows用户,所以登陆后会在XPivot Logon按钮下显示.\test1的账户信息,登陆窗口的Permanently Bind To Computer选项框如果选中再登陆的话,XPivot会记住这个账户身份,以后任何时间在同一台电脑上打开excel,都会默认使用此账户身份访问服务端,如果登陆时没有选中这个选项框的话,这个登陆的身份生命周期就仅仅是当前打开的excel了,关闭这个excel工作薄,这个身份就会消失,适用于临时的切换身份权限

下面简单示例下登陆身份切换
在服务端创建两个windows用户,并创建两个SSAS Role, 分别授权访问不同的Country
QQ图片20150216110143.png


QQ图片20150216110214.png


然后点击Logon按钮,输入SSAS服务端的用户密码test1,勾选Permanently Bind To Computer
QQ图片20150216105225.png


点击XPivot里的New PivotTable按钮,新建数据透视表做以下查询,可以看到能够访问的国家权限是前面设置的test1账户的权限
QQ图片20150216110532.png


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


确认登陆后刷新excel的结果如下,我们看到国家权限已经变成了test2账户的权限
QQ图片20150216110832.png


保存Excel文件,再打开时会刷回test1身份的数据,因为test2账户是临时登陆,而test1账户是绑定计算机的,每次打开excel都会默认使用test1账户,当把这个excel文件发给其他同事,对方打开文件会以他自己电脑上登录的身份来刷新数据

已邀请:
0

minren118 2016-02-18 回答

终于下载到了,但我这边操作了一下,有个好奇怪的问题,我明明把
DW Integrated Security=SSPI;​设置了,
但提交后,这句代码就会被删除,重新打开又不见了,真正访问时也有问题,需要我输入数据库用户密码(因为我NT帐号和数据库帐号不一样的)
 
Cube=Analysis Services Tutorial;
Cube Data Source=.;
Cube Initial Catalog=Analysis Services Tutorial;
Cube Integrated Security=SSPI;
DW Data Source=.;
DW Initial Catalog=AdventureWorksDW2012;
DW Integrated Security=SSPI;

1.png


2.png


3.png

 

要回复问题请先登录注册