SQL Server エージェントのジョブ ステップから SSIS パッケージを呼び出すときに SSIS パッケージが実行されません。

文書翻訳 文書翻訳
文書番号: 918760 - 対象製品
中小企業のお客様は、中小企業向けサポートサイトで問題解決コンテンツや学習リソースもご利用ください。
すべて展開する | すべて折りたたむ

目次

現象

SQL Server エージェントのジョブ ステップから Microsoft SQL Server 2005年の統合サービス (SSIS) パッケージを呼び出すときに、SSIS パッケージは実行されません。ただし、SSIS パッケージを変更する場合は、正常に外部の SQL Server エージェントを実行します。

原因

この問題は、次の条件のいずれかに該当する場合に発生します。
  • SQL Server エージェントでパッケージを実行するために使用するユーザー アカウントは、元のパッケージ作成者から異なります。
  • ユーザー アカウントの接続を確立または SSIS パッケージ外部のリソースにアクセスするのには、必要な権限はありません。
パッケージは、次のシナリオで実行できません。
  • 現在のユーザーはパッケージからシークレットを暗号化解除できません。このシナリオは、元のパッケージ作成者とパッケージから、現在のアカウントまたは実行アカウントとは異なる場合に発生することができます。 ProtectionLevel プロパティの設定値は、現在のユーザーがパッケージの機密情報の暗号化を解除することはできません。
  • 統合セキュリティを使用する SQL Server 接続は、現在のユーザーに必要な権限があるないために失敗します。
  • ファイルへのアクセスは、現在のユーザーが接続マネージャーにアクセス、ファイル共有への書き込みに必要な権限があるないために失敗します。など、このシナリオをログインとパスワードを使用しないテキスト ログ プロバイダーと発生します。この場合も、SSIS ファイル システム タスクなど、ファイル接続マネージャーに依存するすべてのタスクで発生します。
  • HKEY_CURRENT_USER レジストリ キーは、レジストリ ベースの SSIS パッケージの構成を使用します。HKEY_CURRENT_USER レジストリ キーはユーザーに固有です。
  • タスクや接続マネージャーは、現在のユーザー アカウントに適切なアクセス許可があることが必要です。

解決方法

この問題を解決するには、次の方法のいずれかを使用します。最適な方法は、環境と、パッケージが失敗した理由をによって異なります。

方法 1: SQL Server エージェントのプロキシ アカウントを使用します。

SQL Server エージェントのプロキシ アカウントを作成します。このプロキシ アカウント SQL Server エージェントのパッケージを作成したアカウントまたは必要なアクセス許可を持つアカウントとしてジョブを実行することができますは、資格情報を使用する必要があります。

このメソッドでは、機密情報の暗号化を解除する機能、ユーザーが重要な要件を満たします。ただし、SSIS パッケージのユーザー キーは、現在のユーザーや、現在のコンピューターが必要なためこのメソッドが成功制限があります。別のコンピューターにパッケージを移動すると、ジョブ ステップが正しいプロキシ アカウントを使用する場合でもこのため、このメソッドは失敗可能性があります。

方法 2: ServerStorage を SSIS パッケージの ProtectionLevel プロパティを設定します。

SSIS パッケージを変更します。 ProtectionLevel ServerStorage するプロパティです。この設定では、SQL Server データベースにパッケージを保存、アクセス コントロール SQL Server のデータベース ロールからを使用できます。

方法 3: EncryptSensitiveWithPassword に、SSIS パッケージの ProtectionLevel プロパティを設定します。

SSIS パッケージを変更します。 ProtectionLevel EncryptSensitiveWithPassword のプロパティです。この設定は、パスワードの暗号化を使用します。後 SQL Server エージェント ジョブ ステップこのパスワードを含めるためのコマンドラインを変更できます。

方法 4: 使用して SSIS パッケージの構成ファイル

SSIS パッケージの構成ファイルを使用して、機密性の高い情報を格納して、これらの構成ファイルをセキュリティで保護されたフォルダーに格納します。これは、後で変更できます、 ProtectionLevel プロパティには、DontSaveSensitive パッケージが暗号化されていないし、パッケージに機密情報を保存することはありませんようにします。SSIS パッケージを実行すると、必要な情報を構成ファイルから読み込まれます。機密性の高い情報が含まれている場合は、適切な構成ファイルが保護されることを確認してください。

方法 5: パッケージ テンプレートを作成します。

長期的な解決には、デフォルト設定と異なる保護レベルを使用するパッケージ テンプレートを作成します。この問題はパッケージで将来発生しません。

状況

この動作は仕様です。

詳細

問題の再現手順

  1. SQLServer2005SQLAgentUser グループの一部ではないユーザーとしてログインします。たとえば、ローカル ユーザーを作成できます。
  2. SSIS パッケージを作成しは、ExecuteSQL タスクを追加します。次の文字列を使用して、msdb をローカル ファイルには、ole DB 接続マネージャーを使用します。 ' Windows 認証 '・ SQLSourceType:「直接入力」・ SQLStatement:"sp_who"
  3. 正常に実行できるかどうかを確認するのには、パッケージを実行します。
  4. 注意してください、 ProtectionLevel プロパティが EncryptSensitiveWithPassword に設定されています。
  5. SQL Server エージェントのジョブとジョブ ステップを作成します。で、 ユーザーとして実行します。 ボックスの一覧でクリックしてください SQL Server ・ エージェント ・ サービス ジョブ ステップを実行します。
SQL Server エージェント ジョブ ヒストリ内のテキストには、次のような情報が表示されます。

ユーザーとして実行: ドメイン \ ユーザー名。パッケージの実行に失敗しました。ステップは失敗しました。

パッケージの機密情報を復号化します。

既定の設定は、SSIS パッケージ ProtectionLevel プロパティの EncryptSensitiveWithUserKey です。SSIS は、パッケージを保存すると、「のパスワード、ユーザー名、および接続文字列など、機密、」とマークされているプロパティが含まれているパッケージの部分だけが暗号化されます。したがって、パッケージを再読み込みすると、現在のユーザーを復号化するのには、重要なプロパティは、暗号化の要件を満たさなければなりません。ただし、現在のユーザーは、パッケージをロードするのには、暗号化の要件を満たすことはありません。SQL Server エージェントのジョブ ステップからパッケージを実行すると、既定のアカウントは、SQL Server エージェントのサービス アカウントです。この既定のアカウントは、パッケージ作成者より別のユーザー可能性が高いです。したがって、SQL Server エージェントのジョブ ステップ ロードでき、ジョブ ステップの実行を開始しますが、接続を完了できないために、パッケージが失敗します。たとえば、パッケージは OLE DB 接続または FTP 接続を完了できません。接続する必要があります、資格情報を復号化できないため、パッケージは失敗します。

重要です 開発プロセスとアカウントが必要し、各コンピューターで使用する環境を考慮してください。EncryptSensitiveWithUserKey に設定、 ProtectionLevel プロパティは、強力な設定です。割引が展開する複雑さの最初の原因この設定適用される必要がありますされません。適切なアカウントにログオンしている場合は、パッケージを暗号化できます。.Cmd ファイルと、SQL Server エージェント コマンド サブシステムを使用して、保護レベルを変更するのには、Dtutil.exe SSIS コマンド ライン ユーティリティを使用することもできます。たとえば、これらの手順を実行します。バッチ ファイルでループの Dtutil.exe ユーティリティを使用することができますので、以下の手順をいくつかのパッケージを同時に行います。
  1. パスワードを使って暗号化するために必要なパッケージを変更します。
  2. Dtutil.exe ユーティリティを使用して、 オペレーティング システム (コマンド実行) SQL Server エージェントのジョブ ステップを変更するのには ProtectionLevel プロパティの EncryptSensitiveWithUserKey にします。この処理は、パッケージにパスワードを使用して、パッケージから再度暗号化復号化します。パッケージの暗号化に使用される、ユーザーのキーを設定するのは、SQL Server のエージェントのジョブ ステップのですが ユーザーとして実行します。 リストです。

    メモ キーには、ユーザー名とコンピューター名が含まれているため、パッケージを別のコンピューターに移動した効果あります。

SSIS パッケージのエラーに関するエラー情報の詳細があるかどうかを確認します。

SQL Server エージェントのジョブ ヒストリに、限られた情報に頼るのではなく、SSIS パッケージのエラーに関するエラー情報があることを確認するのには、ログの SSIS を使用できます。SSIS サブシステム コマンドのではなく、exec サブシステム コマンドを使用して、パッケージを実行することもできます。

SSIS ログ記録について

SSIS ログおよびログ プロバイダーでは、パッケージの実行とエラーの詳細をキャプチャすることができます。既定では、パッケージの情報を記録しません。情報をログに記録するのには、パッケージを構成する必要があります。情報をログに記録するのには、パッケージを構成すると、次のような詳細情報が表示されます。ここでは、アクセス許可の問題であることがわかります。

OnError、ドメイン名、ドメイン名 \、FTP Task,{C73DE41C-D0A6-450A-BB94-DF6D913797A1},{2F0AF5AF-2FFD-4928-88EE-1B58EB431D74},4/28/2006 1時 51分: 59、2006 年 4 月 28 日 1時 51分: 59、-1073573489、0 x、「FTP 接続マネージャー」を使用して FTP サーバーに接続できませんでした。

OnError、ドメイン名、ドメイン名 \ を実行 SQL Task,{C6C7286D-57D4-4490-B12D-AC9867AE5762},{F5761A49-F2F9-4575-9E2B-B3D381D6E1F3},4/28/2006 4時 07分: 00 PM、2006 年 4 月 28 日 4時 07分: 00 PM、-1073573396、0 x、"user01.msdb"の接続を取得できませんでした。接続が正しく構成されていない可能性がありますか、この接続では、適切なアクセス許可があります。

Exec サブシステム コマンドに関する情報を出力

Exec サブシステム コマンドのアプローチを使用して、SSIS コマンド ラインに、Dtexec.exe SSIS のコマンドライン実行可能ファイルを呼び出すためのスイッチのログ詳細のコンソールに追加します。さらに、出力ファイルの高度なジョブ機能を使用します。できます、 履歴にステップ出力を含める ファイルまたは、SQL Server エージェントのジョブ ヒストリにログ情報をリダイレクトするには、[オプション] をクリックします。

コマンドラインの例を次に示します。

dtexec.exe /FILE 
"C:\_work\SSISPackages\ProtectionLevelTest\ProtectionLevelTest\AgentTesting.dtsx" /MAXCONCURRENT " -1 
" /CHECKPOINTING OFF  /REPORTING V  /CONSOLELOG NCOSGXMT


/Console ログ、次のように詳細情報を返します。

Error: 2006-04-27 18:13:34.76
   Code: 0xC0202009
   Source: AgentTesting Connection manager "(local).msdb"
   Description: An OLE DB error has occurred. Error code: 0x80040E4D.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80040E4D  Description: "Login failed for user 'DOMAINNAME\username'.".
End Error


Error: 2006-04-28 13:51:59.19
   Code: 0xC0016016
   Source:  
   Description: Failed to decrypt protected XML node "DTS:Property" with error 0x80070002 "The system cannot find the file specified.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.
End Error


Log:
     Name: OnError
     Computer: COMPUTERNAME
     Operator: DOMAINNAME\username
     Source Name: Execute SQL Task
     Source GUID: {C6C7286D-57D4-4490-B12D-AC9867AE5762}
     Execution GUID: {7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}
     Message: Failed to acquire connection "(local).msdb". Connection may not be configured correctly or you may not have the right permissions on this connection.
     Start Time: 2006-04-27 18:13:34
     End Time: 2006-04-27 18:13:34
End Log

関連情報

同様の問題の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
904800SQL Server 2005 では、SQL Server 2005 の統合サービス パッケージを実行しようとすると、「読み込みエラー」エラー メッセージが表示されます。
バッチ処理では、Dtutil.exe ユーティリティを使用する方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
906562SQL Server 2005 のバッチの SQL Server の統合サービス (SSIS) パッケージの保護レベルを設定するのには、dtutil ユーティリティ (Dtutil.exe) を使用する方法
パッケージ テンプレートを作成する方法の詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
908018SQL Server のビジネス インテリジェンス開発 Studio でパッケージ テンプレートを作成する方法


セキュリティについての SSIS パッケージとは ProtectionLevel プロパティは、SQL Server 2005 Books Online の「セキュリティ上の考慮事項を統合サービス」を参照してください。

残念ながら、ユーザーはエージェント ジョブのステップの設定を既定値にこの状態で配置することに注意してくださいではありません。SQL Server エージェントのプロキシと SSIS の詳細については、SQL Server 2005 Books online の以下のトピックを参照してください。
  • SQL Server エージェントでパッケージの実行をスケジュールします。
  • SQL Server エージェントのプロキシを作成します。

プロパティ

文書番号: 918760 - 最終更新日: 2013年7月16日 - リビジョン: 10.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2008 Service Pack 1
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Service Pack 3
  • Microsoft SQL Server 2005 Service Pack 2
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
キーワード:?
kbsqlsetup kbprb kbsql2005ssis kbsql2005setup kbexpertiseinter kbexpertiseadvanced kbtshoot kbmt KB918760 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:918760
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com