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を見に行くようになります。