下文使用AS指代SQL Server Analysis Service
在程序中连接SQL Server Analysis Service的方法有3种:
方法一:使用AS的连接字符串直接连接(客户端程序与AS Server在同一个域中)
如:<add name="ConnectionString1" connectionString="Data Source=172.19.38.62;Initial Catalog=databaseName;"/>
方法二:使用SQL AS本身提供的IIS Web站点程序isapi间接连接(客户端程序与AS Server不在同一个域中(PS:本人未验证,应该可以))
详细步骤请参考:http://www.microsoft.com/china/technet/prodtechnol/sql/2005/httpasws.mspx
连接字符串:<add name="ConnectionString1" connectionString="Provider=MSOLAP.3;Initial Catalog=databaseName;Data Source=http://localhost/olap/msmdpump.dll;"/>
注意2点:
:配置好的站点地址使用IE直接访问会显示500服务器端错误,属于正常状况,不用怀疑,使用程序连接那个地址就可以了
:在AS的服务器端需要使用SQL Management Studio程序配置AS服务器的Security(权限),允许本机IUSR用户账户访问
方法三:(比较怪异,但可以解决不在同一个域中的客户端连接AS服务器)
有A、B两台PC,A PC上的程序(如任意.net应用程序或SQL Management Studio)需要访问B PC的AS,由于AS 提供的默认连接方式为域用户连接,所以如果A PC和B PC不在同一个域或A登录用户不是域账户,此时可以通过如下方法从A连接到B的AS:
- 在B Server上新建本地用户(如AnalysisTestUser)
开始->右键点击我的电脑->管理->本地用户和组->右键点击用户->新用户->输入AnalysisTestUser,勾选密码永不过期 - 配置B权限:在B Server上打开Management Studio,连接到本地AS,展开需要连接数据库->右键点击Roles目录->选择New Role...->输入Role Name(如Role1)->从左侧选择Membership->点击Add,添加AnalysisTestUser用户
- 在A Server注销当前用户,然后使用刚创建的AnalysisTestUser登录
OK,现在A PC上的程序可以连接到B PC的AS了;其实只要保证A、B两PC有共同的本地用户账户名称,并在B上AS中配置了该账户权限即可