2017-08-30 18 views
0

問題

リモートサーバーに正常に展開したETLプロセス用のSSISパッケージを開発しました。私は、このサーバーのWindowsとSQLログインを持っていますが、管理者はありません。このETLプロセスがロードするデータは、毎日早朝に別のドメインの別のマシンで生成されるため、できるだけ早くデータ生成プロセス後に自動的にロードする必要があります。リモートでプログラムでSSISパッケージを実行

現在、SSMSでETLパッケージを手動で実行し、runas.exeでSSMSを起動して、リモートサーバー上のWindowsユーザー資格情報をなりすますことでこれを認証します。私たちが初期の開発段階に入っているので、現在のところこれは大丈夫ですが、これは明らかに本番環境では容認できる解決策ではありません。したがって、私はこのプロセスを自動化したいと思います。なぜなら、a)データは非常に時間に敏感であり、b)このプロセスを手動で実行することはPITAです。

私は、ETLパッケージの実行を自動化して行く必要がありますどのような:

  1. 実行はデータが利用可能である直後に発生し、

  2. んが、ユーザー入力が私などから必要とされませんパスワードを入力するには?スケジュール上のSQL Serverエージェントジョブをスケジュール

未遂ソリューション

ための時間感度を、オプションではありません。 runas.exeをそのまま使用する

の必要性を妨げる必要です/netonlyフラグ、および/savecredフラグ、など、いずれかのオプションではありません(また、私のシステム管理者は、SQL Serverエージェントが無効/有効にしていないようです)手動のパスワード入力は、相互に排他的です。

sqlcmd.exe SQLユーザーとパスワードを使用してスクリプトを実行することができます(パスワードはプレーンテキストで入力するのが賢明ですが、SSISパッケージを呼び出すストアドプロシージャを実行すると失敗します) 。

+0

時間の敏感さが問題ではない場合(それはそうではありません)、エージェントを有効にするためにDBAを取得できますか?それが正しい解決策だからです。 –

答えて

0

SQLエージェントの作業を依頼し、パッケージを実行するエージェントジョブを作成することを強くお勧めします。この方法は多くの利点があります。

    プロキシと
  • ネイティブのWindowsユーザーの資格情報の管理は
  • あなたはの環境参照を使用することができます
  • SSMSインタフェースを介して特定のパッケージ/プロジェクトのパラメータの値を、接続マネージャーを構成することができますアカウントSSIS 2012以降を使用し、SSMS経由でも管理します。
  • ジョブは、スケジュールどおりに、またはSQLコマンドから手動で開始できます。したがって、パッケージの開始を自動化することができます。

簡単に言えば、管理がはるかに簡単で、パッケージを実行するために必要なユーザーの資格情報を公開していないこともあります。

代わりに、SysInternalsツールからPsExecを試すことができます。明示的にユーザ名とパスワードを指定する別のコンピュータ上でプログラムを起動することができます。psexec \\server -u user -p password ...。しかし、私はそれに抗議するでしょう。

関連する問題