1

Sql Server Business Intelligence Development Studio で dtsx パッケージを作成し、dtexec ユーティリティを使用して実行しています。dtexec を使用して、/set スイッチを使用して実行時に特定のプロパティを設定しています。したがって、私のコマンドは次のようになります。

dtexec /f "mypackage.dtsx" /set 
\Package.Connections[Destination].Properties[UserName];myUserName

これは、ローカル システム (開発されたシステム) で実行すると完全に機能します。残念ながら、このパッケージを別のシステムにコピーして、まったく同じコマンドを実行しようとすると、次のエラーが表示されます。

Warning: The package path referenced an object that could not be found: 
\Package.Connections[Destination].Properties[UserName]. This occurs when an 
attempt is made to resolve a package path to an object that cannot not be found.

パッケージの移動先の新しいシステムには SSIS がインストールされており、ローカル システム (SP2) と同じバージョンの Sql Server を実行しています。dtsx パッケージの使用目的について誤解しているのかもしれませんが、これがどのように/なぜ起こっているのか本当にわかりません。

4

5 に答える 5

6

この手順は、接続文字列のパスワードなどの機密データを保持できる XML 構成ファイル (.dtsConfig) を作成するためのものであり、パッケージをあるコンピューターから別のコンピューターに移動することを困難にする保護レベルはありません。

この例では、MyDb という SQL データベースへの OLE DB 接続があると想定しています。

  1. 制御フロー、プロパティ: 「ProtectionLevel」を「DontSaveSensitive」に設定

  2. 制御フロー、空のスペースを右クリックしてメニューを表示: [パッケージ構成] をクリックします。

  3. パッケージ構成オーガナイザー: 「パッケージ構成を有効にする」にチェックマークを付けます。「追加」をクリック

  4. パッケージ構成ウィザード、構成の種類の選択: [構成の種類] を [XML 構成ファイル] に設定します。[構成を直接指定] ラジオ ボタンを選択します。「参照...」をクリックします

  5. 構成ファイルの場所を選択し、「ファイル名」を入力します: [PackageName].dtsConfig (パッケージ自体と同じフォルダーと同じファイル名で、拡張子が異なるだけで簡単です); 「保存」をクリック

  6. パッケージ構成ウィザード、構成タイプの選択: [次へ >] をクリックします。

  7. パッケージ構成ウィザード、エクスポートするプロパティの選択: 次のツリー ノードをトラバースし、そのチェックボックスをオンにします。「次へ >」をクリックします。

    \[パッケージ名]\Connection Managers\MyDb\Properties\接続文字列

    \[パッケージ名]\Connection Managers\MyDb\Properties\Password

  8. パッケージ構成ウィザード、ウィザードの完了、[完了] をクリックします

  9. パッケージ構成オーガナイザー: [閉じる] をクリックします。

  10. ソリューション エクスプローラー: メニューのルート ツリーを右クリックし、[追加]、[既存のアイテム...] の順にクリックし、[パッケージ名].dtsConfig をクリックし、[追加] をクリックします。

  11. ソリューション エクスプローラー: \Miscellaneous\[PackageName].dtsConfig をダブルクリックしてエディターに読み込みます。

  12. メイン メニュー: [編集] をクリックし、[詳細設定] をクリックして、[ドキュメントの書式設定] をクリックします。

  13. XML ツリー ノードをトラバースします: \DTSConfiguration\Configuration[Path="\Package.Connections[MyDb].Properties[Password]"]\ConfiguredValue; データベースのパスワードを入力します。ファイルを保存します

  14. Windows エクスプローラー: [PackageName].dtsx に移動してダブルクリックします。

  15. Package Utility を実行、構成、「追加」をクリック、[PackageName].dtsConfig をダブルクリック、「実行」をクリック

.dtsx を別のマシンに移動する必要がある場合は、単に .dtsConfig を添付してください。お役に立てれば。

乾杯、アリ。

于 2009-01-15T08:51:55.877 に答える
1

制御フローのプロパティには、「ProtectionLevel」というプロパティがあります。これを「DontSaveSensitive」に設定すると、開発とテストを行う際の頭痛の種が少なくなる可能性があります。セキュリティが要件である本番シナリオでは、別のソリューションを見つける必要がある場合があります。

于 2009-01-06T22:03:07.290 に答える
1

マシン間でパッケージを移動し、パッケージのすべての署名を回避する最も簡単な方法は次のとおりです。

パッケージを開いた状態の Visual Studio で、[パッケージ名のコピーを保存] を選択します。

次に、ウィザードを起動します。最も簡単な方法は、おそらくファイル ストアを選択することです。次に、ウィザードの下部に保護レベルが表示されます。[機密データをパスワードで暗号化する] を選択します。パスワードを入力します。

サーバー上で移動して [パッケージのインポート] を選択すると、パスワードの入力を求められます。入力すると、接続情報が新しいサーバーに正しく移動されます。

間違いなくベスト プラクティスではありませんが、テスト サーバー間で物事をすばやく移動するための優れた方法です。

于 2008-11-27T07:28:24.593 に答える
1

マシン間でパッケージを移動する場合は、展開ユーティリティを作成する必要があります。接続情報は、マシン固有のキーを使用して暗号化されます。

VS のプロジェクト プロパティに移動する場合は、配置ユーティリティ セクションを選択し、CreateDeploymentUtility オプションを true に設定します。これにより、展開ユーティリティが bin フォルダーに作成されます。それをすべて新しいマシンにコピーし、インストーラーを実行すると、すべて正常に動作するはずです。

于 2008-11-05T13:08:56.323 に答える
0

パッケージ セキュリティに関する MSDN のガイドラインを次に示します。パッケージの保護レベルの設定

于 2011-10-21T14:33:38.990 に答える