【SQL Server】DTSXでDB接続PASSWORDをConifgから参照させるように手動で修正する

DTSXでDB接続PASSWORDをConifgから参照させるように手動で修正する

手元の開発PCのSql Server Business Intelligence Development Studioのパッケージ構成ツールが動かなくなっていました。。。
SQL SERVER 2008やVisual studio 2008やVisual studio 2010などを入れてしまったので、何かおかしくなってしまったのかと思います。

Sql Server Business Intelligence Development Studio 2005で過去に作成したDTSXを外部のConfigを参照させるようにしたいため、手で書き換えてやることにしました。
その備忘録です。

1)まずは、外部のConfigファイルを参照できる権限を与えます。
DTSXを作った当初は、


<DTS:Property DTS:Name="EnableConfig">0</DTS:Property>

   になっています。
   そこで、


<DTS:Property DTS:Name="EnableConfig">-1</DTS:Property>

   のように値を修正します。

2)DBのPASSWORDを保存している箇所を修正します。
   今までのPASSWORDの保存方法でどのように格納されているかで変わってきますが、

   <DTS:Password DTS:Name="Password" Sensitive="1" Encrypted="1">********</DTS:Password>

   等々になっているとこを

   <DTS:Password DTS:Name="Password" Sensitive="1"></DTS:Password>

   にしてやります。

3)Gonfigファイルの在処を追加します。
   DTSIDの値は、ConnectionManagerあたりののDTSIDのコピーで私の環境では動きました。

   
<DTS:ConnectionManager></DTS:ConnectionManager>

   の次に追加します。

   <DTS:Configuration>
     <DTS:Property DTS:Name="ConfigurationType">1</DTS:Property>
     <DTS:Property DTS:Name="ConfigurationString">ここにファイルの在処を記述</DTS:Property>
     <DTS:Property DTS:Name="ConfigurationVariable"></DTS:Property>
     <DTS:Property DTS:Name="ObjectName">構成 </DTS:Property>
     <DTS:Property DTS:Name="DTSID">{ConnectionManagerのDTSIDをコピー}</DTS:Property>
     <DTS:Property DTS:Name="Description"></DTS:Property>
     <DTS:Property DTS:Name="CreationName"></DTS:Property>
    </DTS:Configuration>

4)Configファイルを作成し指定したフォルダに保存します。

   <DTS:ConnectionManager>

   で記述した

<DTS:Property DTS:Name="ObjectName">DB接続名1</DTS:Property>

を指定します。
   ファイル内容は以下のとおり。ファイル名は適当にSetting.xmlとかに。

  <?xml version="1.0"?>
  <DTSConfiguration>
    <Configuration ConfiguredType="Property" Path="\Package.Connections[DB接続名1].Properties[Password]" ValueType="String">
     <ConfiguredValue>PASSWORD</ConfiguredValue>
    </Configuration>
  </DTSConfiguration>

以上で、実行時に指定されたConfigファイルのPASSWORDを見に行くようになります。