2016-09-19 22 views
0

Windows認証を使用してSSASサーバーにキューブを作成し、展開しました。SSASでキューブのデータソースのユーザー名とパスワードを動的に変更

45日ごとに、クライアントの要求に応じてoracleソースdbパスワードが変更され、パスワード情報が監査テーブルに保存されます。

ここで、サーバーに配備した既存のキューブのパスワードを45日ごとに自動的に変更する必要があります。プロセスに影響を与えることなく。

私を助けてください。

+0

'.net'と' ssis'はこの質問と何が関係していますか? –

+0

では、SSISを使用してスクリプトタスクを記述することができます。それは理由がSSISと.Netをテイクした – jay

答えて

0

これを処理する1つの方法は、キューブを処理するジョブにステップを追加することです。

ステップはキューブ処理ステップの前に来て、監査テーブルを読み取って現在のoracleパスワードを確認し、使用するキューブのデータソース・ノードを変更するアプリケーション(コンソールまたはssis)を実行します。 oracle接続の現在のパスワード。

0

はい、SSISで実行できます。
SSISパッケージを起動するときにパスワードがわかっていると仮定します。パッケージを作成し、十分なユーザー権利を持つSSASサーバーへの接続を定義します。次の式でパスワードを持つStringユーザー変数と文字列のユーザー変数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>domain\login</Account> 
      <Password>"[email protected][User::Password]+"</Password> 
     </ImpersonationInfo> 
     <Timeout>PT10M</Timeout> 
     <MaxActiveConnections>120</MaxActiveConnections> 
    </DataSource> 
    </ObjectDefinition> 
</Alter>" 

独自のデータソース、またはより良いと一致するように、この例を修正 - SSMSからデータソースのためのアルターXMLAを生成し、表現とそれを修正します[email protected][User::Password]+である。 次に、Analysis Services DDL Taskを追加し、SourceType - VariableおよびSource - User :: XMLA_Change_Pwdを指定します。

+0

あなたの応答Ferdipuxに感謝します。私はImpersonationInfoを変更していない、私はConnectionStringパラメータ(ユーザーIDとパスワード)を変更する必要があります。これは同じことを可能にするか、またはメタデータテーブルを使用するかどうかです。 – jay

+0

@ jay、SSASは接続文字列にパスワードを保持しません。したがって、特定のアカウントを使用してOracleにアクセスする場合は、ImpersonationInfo - ImpersonateAccountを使用する必要があります。接続文字列のみを変更したい場合でも、DataSourceのすべてのプロパティを指定する必要があります。これはXMLAの設計によるものです。 – Ferdipux

+1

@Ferdipuxあなたは上に示唆したことをすることができますが、接続文字列にパスワードを入れてください。データソースをスクリプト化すると、この情報は表示されませんが、保存されます。 – GregGalloway

関連する問題