跨多个环境部署时的SSAS连接字符串?

时间:2013-07-17 13:09:30

标签: deployment connection-string datasource ssas

我有三种不同的环境;开发,测试和生产。

这三个SSAS环境连接到三个不同的SQL Server实例。

但是,服务器在SSAS数据源中是硬编码的,因此在部署时,实例会因为指向错误的,无法访问的SQL服务器而中断。

如何配置SSAS数据源连接字符串,以便在部署时不会覆盖它,或者,如何使其变量以便为其部署的环境查找正确的值?

在部署到每个环境之前,我一直在手动编辑.asdatabase文件,但这是一个不可接受的违反变更控制程序的行为,所以我必须得到一个更合适的机制。也许有一个非常简单的解决方案,但如果是这样的话,我还没有想出来。

3 个答案:

答案 0 :(得分:1)

一种方法可能是在部署SSAS多维数据集时,您可以运行XMLA脚本,在SSAS连接字符串中设置SQL Server数据源。另一种方法是您可以在所有环境中将源设置为具有相同名称的系统DSN,并在ODBC数据源控制面板上进行调整。出于各种原因,我更喜欢前者,但后者可以工作。

答案 1 :(得分:1)

在Visual Studio 2019的SSAS / SSDT版本中,当配置管理器更改时,它似乎被配置管理器下拉更改。这保存在.dwproj文件中。每个配置都有这样的条目。

<Configuration>
  <Name>Prod</Name>
  <Options>
    <ConnectionMappings>
      <ConfigurationSetting>
        <Id>SII DW</Id>
        <Name>SII DW</Name>
        <Value xsi:type="xsd:string">Provider=SQLNCLI11.1;Data Source=SERVER;Integrated Security=SSPI;Initial Catalog=SII_DW</Value>
      </ConfigurationSetting>
    </ConnectionMappings>
    <ConnectionSecurityMappings>
      <ConfigurationSetting>
        <Id>SII DW</Id>
        <Name>SII DW</Name>
        <Value xsi:type="xsd:int">0</Value>
      </ConfigurationSetting>
    </ConnectionSecurityMappings>
    <DeploymentServerEdition>Standard</DeploymentServerEdition>
    <DeploymentServerVersion>13.0</DeploymentServerVersion>
  </Options>
</Configuration>

答案 2 :(得分:0)

这最近让我有点疯狂,但我设法做到这一点,是使用部署向导部署到开发(我使用表格,所以我必须使用v17)。然后在SSMS中,我连接到我的开发Analysis Services实例,右键单击数据源并更改其中的连接属性,然后手动处理。

以前如果我在SSDT中使用它,到目前为止它的工作原因并不明确(我希望能够深入到底)。

我觉得这不是最好的解决方案,我尝试使用部署脚本,但这也不起作用。