1

我正在尝试连接到远程服务器上的 SQL Server Analysis Services 多维数据集,该服务器未连接到我所连接的域。

提供用户名和密码后,我可以使用 Excel 连接到多维数据集。现在我正在尝试通过代码连接到同一个多维数据集。

通过 AdomdConnection 连接不成功

使用 SQL Server 2008 R2 的 ADOMD.net (AdomdConnection) 我尝试使用此连接字符串进行连接:

Data Source=SRV1;Initial Catalog=Name of Cube;User Id=RemoteAccount;Password=***

此连接在连接的 Open 方法上失败。有趣的是,“user id”和“password”属性是允许的,因为如果语法错误,你会得到一个 KeyNotFoundException。

通过 OleDbConnection 成功连接

如果我改用 OleDbConnection 和以下连接字符串(从 Excel 连接复制),我可以成功连接:

Provider=MSOLAP.4;Persist Security Info=True;User ID=SRV1;Password=***;Initial Catalog=Name of Cube;Data Source=SRV1;

所以我的问题是:

  • 有人可以解释这种行为吗?我以为 AdomdConnection 只是在下面使用了 OleDB?
  • 有没有办法使用用户名和密码通过 AdomdConnection 连接到 SSAS 实例?
  • AdomdConnection 和 OleDbConnection 之间还有什么区别吗?

所有下载都可以在这里找到

4

2 回答 2

0

我使用用户名/密码键成功地使用了 AdomdConnection,但不同之处在于我正在连接到 HTTP 数据源。我正在使用的解决方案是通过 IIS 7 在 HTTP 上传输 OLAP 流量,如MSDN中所述。然后 IIS 将用户名和密码模拟为 Windows 凭据。

注意:在 IIS 中禁用匿名和 Windows 身份验证。我只使用基本身份验证。为了增强安全性,请使用 SSL。

于 2011-02-17T13:03:51.010 回答
-1

如果你不能用excel连接立方体,那么你就不能用代码连接它。

ADOMD.Net 和 OleDb 连接之间的区别在于,OleDb MSOLAP 提供程序可用于将 MDX、DAX 和 DMX 查询发送到 Analysis Services 数据库。结果只能是标量或表,因此您不能使用 MDX 查询返回两个以上轴上的结果。当您使用 DAX 查询时,结果将始终很好地适合表,您可以使用 DataReader 类来获取结果。

由于存在尚未解决的连接错误,我们主要更喜欢 OleDb 上的 ADOMD.NET。

为了使用 ADOMD.NET 连接到 SSAS 实例,我们需要在 web.config 文件中添加以下行(在 Visual Studio 2012 中创建控制台应用程序之后)

由于我们将使用 Windows 身份验证连接到 Microsoft Analysis Services 2005,因此需要在 web.config 文件中添加这一行来模拟有权访问 Analysis Services 的用户。

我们需要通过创建一个新的应用程序池来配置 IIS 服务器。

以下 MSDN 链接将给出 ADOMD.NET 连接字符串的其他参数。

https://msdn.microsoft.com/en-us/library/microsoft.analysisservices.adomdclient.adomdconnection.connectionstring

于 2015-02-19T19:06:12.687 回答