- PR -

SqlServerエージェントからIISへFTP接続

1
投稿者投稿内容
木霊
会議室デビュー日: 2006/11/06
投稿数: 7
お住まい・勤務地: 大阪府
投稿日時: 2006-11-06 12:59
初めて投稿させていただきます。
木霊と申します。

2台のPCを用いて、CSVファイルのアップロードを行いたいのですが、

クライアント   SqlServerエージェント
サーバ      IIS(FTPサーバ)
パッケージ    SSISで作成(FTP接続マネージャ使用)
パッケージのFTP接続マネージャは、サーバ側のWindowsユーザ・
パスワードを設定しています。

以上の条件で、SqlServerエージェントのジョブでパッケージを
実行したところ、サーバにログイン出来ていませんでした。

また、パッケージをエクスプローラーから直接実行した場合、
ログインが出来て、アップロードも行えています。

また、SqlServerエージェントのログオンアカウントを
administratorにした場合、ジョブからの実行でもアップロードは
行えています。

そこで質問なのですが、
SqlServerエージェントのログオアカウントをadministrator以外で
CSVファイルをアップロードするには、どうすればいいでしょうか?
SqlServerエージェント関連の本を読み漁っても見当が付かない状態です。

どうかご教授のほど宜しくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-11-06 16:11
こんにちは。

デフォルトでパッケージの Package.ProtectionLevel プロパティ には EncryptSensitiveWithUserKey が設定されています。

それで SQL Server Agent のアカウントが FTP 接続に必要な資格情報を復号できなかったのだと思います。

この挙動に関しては Books Online の Integration Services のセキュリティに関する注意点 やサポート技術情報の An SSIS package does not run when you call the SSIS package from a SQL Server Agent job step (日本語は機械翻訳)を参考にされると良いと思います。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
木霊
会議室デビュー日: 2006/11/06
投稿数: 7
お住まい・勤務地: 大阪府
投稿日時: 2006-11-06 18:06
ue様
ご回答頂き、ありがとうございます。

参考HPを見て、改めてパッケージの実行環境を見直しますと、
パッケージ作成アカウントがadministratorになっていたため、
SQLServerエージェントのログオンアカウントをadministratorに
設定するとジョブが成功することが理解出来ました。

そこで、SQLServerエージェントのログオンアカウントを
ビルドインアカウントのローカルシステムに設定し、ジョブ実行時に
機微データであるユーザ・パスワードを入力する方法を取りました。
パッケージのProtectionLevelプロパティはデフォルト値のままにしています。

ジョブのプロパティで、
ステップ>編集>全般>データソースタブのFTP接続マネージャの接続文字列
の部分に、
uid=xxxx    (サーバ側Windowsユーザ)
password=xxxx (サーバ側Windowsユーザパスワード)
を追加して実行したところ、失敗しました。

これは私の理解の仕方が間違っていたのでしょうか?
それとも、接続文字列に追加する項目がまずかったのでしょうか?
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-11-06 19:48
ueです。

引用:

ジョブのプロパティで、
ステップ>編集>全般>データソースタブのFTP接続マネージャの接続文字列
の部分に、
uid=xxxx    (サーバ側Windowsユーザ)
password=xxxx (サーバ側Windowsユーザパスワード)
を追加して実行したところ、失敗しました。


動いても良さそうな方法ですね...
もしかしたら、この方法で設定した接続文字列も「機微なデータ」として扱われるのかもしれません。

パッケージの保護レベルの設定 を参考に ProtectionLevel を色々な値に変更してみると何か見えてくるかもしれません。
その際 パッケージへのログ機能の実装 を参考にロギングすると作業が楽になると思います。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
木霊
会議室デビュー日: 2006/11/06
投稿数: 7
お住まい・勤務地: 大阪府
投稿日時: 2006-11-07 09:44
ue様

パッケージの保護モードプロパティですが、
いろいろ試しても成功する気配が無かったので、
パッケージ作成アカウントと実行アカウントを
合わせる方向でいくことにしました。

私の質問にお付き合い頂き、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)