web-dev-qa-db-ja.com

SSIS 2017パッケージの接続マネージャーでパスワードが保存されない

Visual Studio 15.7.2を使用し、SQL 2017(14.0.3029.16)でSSISを使用しています。

サードパーティのベンダーが管理するSQL Server 2008 R2(10.50.6529.0)への接続マネージャーを構築しました。このサーバーへの接続はSQLログインを介してのみ許可されているため、Windows認証は必要ありません。

Visual Studio/SSDT内でパッケージを問題なく実行できます。パッケージは期待どおりに実行され、正常に完了します。

SSDTでパッケージを開くと、すぐにエラーが発生します。

Package Open Errors

接続マネージャを見ると、次のアイコンが表示されています。

Connection Manager Error

接続マネージャを開くと、次のように表示されます(パスワードは空白、*********である必要があります):

Password Missing!

パッケージは東部標準時午後8時45分に(ジョブを介して)実行するように構成されており、毎回失敗します。基本的にはサードパーティのサーバーに接続できないというエラーが大量に発生します。調査の結果、パスワードが保存されていないため、正面玄関で拒否されました。

これまでに誰かに遭遇したことがありますか?どのようなオプションを修正する必要がありますか?私はSSISに少し慣れていないので、多くのハードレッスンをすばやく学んでいます。

1
Sean Perkins

SQLログインのパスワードは機密情報であるため、接続文字列から省略され、保存されません。パッケージをSSISカタログに展開する場合は、パスワードにSensitiveプロパティを使用して環境変数を使用し、これを接続マネージャーの対応するプロパティにマップします。これをSQLログインに実装する方法の詳細については、Andy Leonardの次の記事を参照してください。 SSISカタログを構成する場合は、このシリーズのレベル18を参照してください。また、SSISは比較的初心者であるとのことですが、この階段からも作業することをお勧めします。

http://www.sqlservercentral.com/articles/Stairway+Series/121490/

2
userfl89

既定では、SSISはUserKeyと呼ばれるもので機密データ(パスワードなど)を保存および暗号化します。つまり、SSISパッケージを以前に保存した人以外は、保存されたパスワードで接続を使用することはできません。

これは、SSISパッケージのプロパティ-> ProtectionLevelで変更できます。 「EncryptAllWithPassword」を選択し、「PackagePassword」プロパティにパスワードを設定して、パッケージを保存する必要があります。これで、次回パッケージを開くときに、SSDTはパスワードの入力を要求します。入力すると、接続は正常に機能するはずです。

1
user167039

パッケージ展開を計画している場合、問題は異なります。構成ファイルを使用して、開発、テスト、またはデプロイメント環境によって異なる可能性のあるさまざまな入力と設定を提供する必要があります。

パッケージ展開を使用する場合、パスワードの保存は、パッケージの暗号化にUserKeyまたはPasswordが使用されている場合にのみ有効になります。 UserKeyは、スパイや、ある環境から次の環境に持ち越される安全なIDを使用して展開したい人のためのものですが、その使い方は不格好です。パスワードの暗号化は少し不格好ですが、パッケージが最初に昇格された後、開発者がそれらを知ることを許可されていない開発者が安全な製品パスワードを利用できないようにするためにパッケージを管理する必要があることを意味します。

ここでの問題の1つは、パスワードが保存されるレベルが明確でないことです。接続マネージャーの暗号化されたプロパティであると想定する人もいますが、それが事実である場合、なぜそれが不正なパスワードで試行し続けるのかわかりません。

0
Asher