在SSAS中动态更改多维数据集数据源用户名和密码



我已经使用windows身份验证在SSAS服务器上创建并部署了多维数据集。

但是每45天,根据客户端的请求,oracle源数据库的密码将被修改并存储在审计表中的密码信息。

现在,我需要每45天自动更改服务器上部署的现有多维数据集的密码。不影响进程

请帮帮我。

是的,您可以使用SSIS。
假设您知道启动SSIS包时的密码。创建一个包,用足够的用户权限定义到SSAS服务器的连接。创建一个带有Password的字符串用户变量和一个带有以下表达式的字符串用户变量XMLA_Change_Pwd:

    "<Alter AllowCreate=""true"" ObjectExpansion=""ObjectProperties"" xmlns=""http://schemas.microsoft.com/analysisservices/2003/engine"">
  <Object>
    <DatabaseID>You_SSAS_DB</DatabaseID>
    <DataSourceID>Your_DataSource</DataSourceID>
  </Object>
  <ObjectDefinition>
    <DataSource xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:ddl2=""http://schemas.microsoft.com/analysisservices/2003/engine/2"" xmlns:ddl2_2=""http://schemas.microsoft.com/analysisservices/2003/engine/2/2"" xmlns:ddl100_100=""http://schemas.microsoft.com/analysisservices/2008/engine/100/100"" xmlns:ddl200=""http://schemas.microsoft.com/analysisservices/2010/engine/200"" xmlns:ddl200_200=""http://schemas.microsoft.com/analysisservices/2010/engine/200/200"" xmlns:ddl300=""http://schemas.microsoft.com/analysisservices/2011/engine/300"" xmlns:ddl300_300=""http://schemas.microsoft.com/analysisservices/2011/engine/300/300"" xmlns:ddl400=""http://schemas.microsoft.com/analysisservices/2012/engine/400"" xmlns:ddl400_400=""http://schemas.microsoft.com/analysisservices/2012/engine/400/400"" xsi:type=""RelationalDataSource"">
      <ID>DataSource ID</ID>
      <Name>DataSource Name</Name>
      <Description>Description</Description>
      <ConnectionString>...Put your connection string here...</ConnectionString>
      <ImpersonationInfo>
        <ImpersonationMode>ImpersonateAccount</ImpersonationMode>
        <Account>domainlogin</Account>
          <Password>"+@[User::Password]+"</Password>
      </ImpersonationInfo>
      <Timeout>PT10M</Timeout>
      <MaxActiveConnections>120</MaxActiveConnections>
    </DataSource>
  </ObjectDefinition>
</Alter>"  

修改此示例以匹配您自己的数据源,或者更好-从SSMS为数据源生成Alter xmlla并使用上面所示的表达式+@[User::Password]+修改它。然后添加Analysis Services DDL Task,并指定SourceType - Variable和Source - User::XMLA_Change_Pwd。

好的,处理这个问题的一种方法是在处理多维数据集的作业中添加一个步骤。

该步骤将在多维数据集处理步骤之前执行,它将执行一个应用程序(控制台或ssis),该应用程序将读取审计表以查看当前的oracle密码,然后修改多维数据集的数据源节点以使用oracle连接的当前密码。

最新更新