none
sql server 2008 R2内SSISパッケージの移行において、0x80040E4Dエラーが発生する。 RRS feed

  • 質問

  • お世話になっております。

    旧環境:SQL Server 2008 R2

    新環境:SQL Server 2017

    ①旧環境のSSISパッケージエクスポート(MSDB管理中)をエクスポート(保護レベル:(規定値)ユーザーキーで暗号化)

      なお、該当パッケージからは、さらに外部SQL Serverへの接続定義実施

        ※sa認証で定義

    ②新環境にSSISパッケージインポート(保護レベル:ストレージおよびロール依存)、かつアップグレード実施

    ③新環境で該当パッケージを実行すると、接続定義で外部SQL Serverに対し、saログインできない状況。

      ※0x80040E4Dエラーが発生する。

    -----------------------------------------------------------------------------------------------------------

    ①のエクスポートしたパッケージをSSDT 2017で編集し直し、saのパスワードを再設定後に、バッチよりDTExecで実行すると

    saログインはできているみたいですが、パッェージをインポートすると、saログインエラーとなります。

    インポート時、およびアップグレード時に、saパスワードが変換されて、ログインできない感じがあるんですが、すいません、対応方法

    が不明です。

    ・ちなみに、インポート時ほぞレベル=ユーザーキーでの暗号化、元の保護レベルのいずれのオプションでも結果NGでした。

    ・また、①、②作業でのログインアカウントは、ドメインでの共通のアドミンユーザーで作業しています。

    ・外部sql serverへのsa認証は中止できない状況。

    どなたか、情報ございましたら、宜しくお願い致します。

    2018年12月25日 3:33

回答

  • お世話になっております。

    外部構成ファイルに秘密情報を管理させ、構成ファイルのアクセス制御を行う方向で対応します。

    一旦完了にさせてください。

    いろいろと情報いただき、ありがとうございました。

    • 回答としてマーク akiyama1192 2019年1月15日 2:18
    2019年1月15日 2:18

すべての返信

  • akiyama1192さん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご説明によりますと、SSIS パッケージを SQL Server 2008 R2(server1) からエクスポートし、
    別のマシン (server2) をインストールして SQL Server 2017 にインポートしようとしているでしょうか。

    この場合は、下記4つのステップをご参照ください。
    1.MSDBからパッケージをエクスポートする
    2.SSIS 2017にパッケージを更新する

    Upgrade Integration Services Packages Using the SSIS Package Upgrade Wizard

    3.パッケージを新しいマシンに移動する
    4.SSIS 2017にパッケージをインポートする

    どのようにしてパッケージをserver1からserver2に移動したのでしょうか。 直接コピーしますか。
    その場合は、パッケージの保護レベルをEncryptAllWithPasswordに変更する必要があります。
    これにより、接続マネージャのすべてのパスワードがパッケージに保存され、server2でパッケージを実行したときにそのような「ログインできない」メッセージは表示されません。

    EncryptAllWithPasswordに保護レベルを変更しても問題が解決しない場合は、
    上記の手順をどのように終了したかに関する詳しい情報などを提供してください。

    うぞよろしくお願いします。


    ~ 参考になった投稿には回答としてマークの設定にご協力ください ~
    MSDN Community Support Haruka

    2018年12月31日 1:22
    モデレータ
  • お世話になっております。

    手順ですが、

    ①旧環境(オンプレ:SQL Server 2008R2)のパッケージをSSMSを利用してエクスポート。

     ②新環境(Azure IaaS/SQL Server 2017)にSSMSを利用してインポート

    ③新環境でSSMSを利用してアップグレード

    直接コピーの方法が、よく理解できていません。

    2019年1月3日 21:23
  • akiyama1192さん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信頂きありがとうございます。

    SSISパッケージをAzure-SQL Serverに展開するには、次のリンクを確認してください。

    How to migrate your SSIS packages / catalog to Azure VM?

    ステップ1、SQL Server 2008 R2からSSISパッケージをエクスポートする
    ステップ2、SSDTで開き、プロジェクト展開モデルに変換し、保護レベルをEncryptAllWithPasswordに変更します。
    ステップ3、上のリンクで残りのステップに従ってください。

    うぞよろしくお願いします。


    ~ 参考になった投稿には回答としてマークの設定にご協力ください ~
    MSDN Community Support Haruka

    2019年1月4日 8:29
    モデレータ
  • 世話になっております。

    ステップ2、SSDTで開き、プロジェクト展開モデルに変換し、保護レベルをEncryptAllWithPasswordに変更します。

    =>現在、客先ではSSISサービス:MSDB内にインポートされたパッケージのみで、プロジェクトモデるが無い状況です。

    プロジェクト展開モデルに変換・・ですが、これはSSISプロジェクトを作成し、既存パッケージの取り込みで対応する手順ということで、宜しいでしょうか?

    宜しくお願い致します。

    ------------------------------------------------------------------------------------------------------

    今後は、ユーザーには、プロジェクト管理で対応するように、説明していく予定です。

    2019年1月6日 1:00
  • お世話になっております。

    ステップ2、SSDTで開き、プロジェクト展開モデルに変換し、保護レベルをEncryptAllWithPasswordに変更します。

    ==>追加で確認なんですが、保護レベルをEncryptAllWithPassword=全てのデータをパスワードで保護  にすると、Dtexec実行時にも所定のパスワードを指定しないといけなくなりますか??

    実行時には、パスワード指定は運用したくない状況です。

    --------------------------------------------------------------------------------------------------------

    sa認証を使用する接続マネージャですが、パスワード保存にチェックしているんですが、いったんsaパスワードを設定し、保存後、再度接続マネージャを開くと,saパスワードが「空白」で表示されている状況なんですが、何か関連ないでしょうか??

    宜しくお願いi致します。

    2019年1月7日 7:34
  • akiyama1192さん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信頂きありがとうございます。

    >追加で確認なんですが、保護レベルをEncryptAllWithPassword=全てのデータをパスワードで保護  にすると、Dtexec実行時にも所定のパスワードを指定しないといけなくなりますか??
    実行時には、パスワード指定は運用したくない状況です。
    →それでは、パッケージをパッケージ展開モデルに保存し、パッケージ設定を追加してパスワードを設定ファイルに保存します。
    この方法では、DTExecからパッケージを実行するときにパスワードを指定する必要はありませんが、
    ファイルにアクセスできる人はだれでもパスワードを見ることができるので、安全ではありません。

    下記のリンクが参照になれば幸いです。

    https://mikedavissql.com/2014/03/17/using-configuration-files-in-ssis/



    手動で設定ファイルにパスワードを入力する必要があることに注意してください。
    このような:

    <Configuration ConfiguredType="Property" Path="\Package.Connections[LocalHost.MyDB].Properties[Password]" ValueType="String">

    <ConfiguredValue>MyPassword</ConfiguredValue>

    </Configuration>

    うぞよろしくお願いします。


    ~ 参考になった投稿には回答としてマークの設定にご協力ください ~
    MSDN Community Support Haruka

    2019年1月8日 8:31
    モデレータ
  • お世話になっております。

    外部構成ファイルに秘密情報を管理させ、構成ファイルのアクセス制御を行う方向で対応します。

    一旦完了にさせてください。

    いろいろと情報いただき、ありがとうございました。

    • 回答としてマーク akiyama1192 2019年1月15日 2:18
    2019年1月15日 2:18