- - PR -
[SQLサーバ] ジョブとリンクサーバーに関して。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-14 16:47
初めての書き込みにて失礼します。
Windows2000サーバ,SQLserver2000にて開発を行っています。 DBサーバ1から物理的に別のPC上のDBサーバ2に対してリンクサーバをしている環境で、 SBサーバ1にて「リンクサーバへの参照SQLを含む」ストアドを ジョブでスケジュールで実行を行ったところ、ジョブが失敗します。 ジョブヒストリの詳細でエラーを確認すると、 次のエラーが表示されていました。 ------------------------------------------------------------------------------------------------ SETUSER を使用してアクティブにした Windows NT ユーザーはリモート アクセスできません。 [SQLSTATE 42000] (エラー 7410). ステップは失敗しました。 ------------------------------------------------------------------------------------------------ 実行するストアド自体はクエリアナライザ上で実行すると問題なく動作していますので、 問題があるのはジョブ起動時のユーザー権限にあるのではないかと思うのですが・・・。 ちなみにJOBはストアドにて登録しています。 各JOB登録スクリプトのユーザーは、DBにて設定しているユーザを使用しています。 上記クエリアナライザでの実行時はそのユーザーで成功しました。 よろしくご教授をお願い致します。 | ||||
|
投稿日時: 2005-06-15 12:00
SQL Server Agent Job は ・ジョブを起動するユーザーコンテキスト ・ジョブステップを実際に実行するコンテキスト が異なります。 リンクサーバーの環境をすぐに用意できませんので,検証していませんが, 少なくとも, ジョブステップを実行するコンテキストは, ・SQL Server Agent のサービスアカウント ・SysAdmin 以外が起動したジョブ内のCmdExec などは,プロキシアカウント となります。 まずは,SQL Server Agent のサービスアカウントを確認してください。 ローカルシステムアカウントになっている場合は, ・特定のドメインアカウントに設定する。 ・このドメインアカウントをリンクサーバー側の資源が触れるように設定する (もしくは全ての Agent のサービスアカウントをドメインアカウントで統一してしまう) とすることでジョブを実行できると思います。 ローカルシステムアカウントのみで今後も管理していく場合でも Service Principal Name(SPN)を使用できると思います。 さらに,リンクサーバー設定のログインマッピングで,コンテキストをマップすると 要件によっては可能であるかもしれませんが,こちらは試していません。 Books Online の 「セキュリティアカウントの委任」 「リンクサーバーのセキュリティの確立」 あたりを参照してください。 |
1