言い換えると、SQLジョブを作成したユーザーがデフォルトになっている場合でも、SQLジョブのジョブ所有者を常にsaに設定する必要がありますか?
3 に答える
ユーザーが所有するジョブは、そのユーザーが無効化または削除された場合、実行を停止します。実行時にActiveDirectoryに問題がある場合も、ジョブが実行されない可能性があります。ブレントオザルは彼のウェブサイトでこれについての記事を持っています: http ://www.brentozar.com/blitz/jobs-owned-by-user-accounts/
あなたは私に耐えなければならないでしょう。私は記憶で行くからです。
いくつかの古いスクリプトを見ると、私はこのコードを持っています。
@jobOwnerNameVeryImportantToSetCorrectly='someSqlAuthenticatonUser'を選択します
今。私のシナリオでは、「sa」以外のユーザーにジョブのスケジュールと実行を許可しました。したがって、なぜ私は所有者を「sa」以外のユーザーにしたのですか。
私が答えると思う質問は、「誰が仕事をするか」です。それが常に「sa」である場合、それは問題ではありません。
しかし、「sa」以外のアカウントで実行したい場合、特権の低いアカウントで、super-mack-daddyアカウントが所有するジョブを実行するにはどうすればよいでしょうか。
私のテストはそうなるでしょう。
- ジョブを作成します。'sa'がそれを所有しましょう。
- 一時的なsql-authenticationアカウントを作成します。
- このsql-authenticationアカウントとしてデータベースにログインします。
- ジョブを実行できるかどうかを確認してください。
私の記憶は「より少ないアカウントはできないだろう」と言っています。ただし、私はSql Server 2005でジョブを処理しました。したがって、2005年を正しく覚えていても、2008年と2008R2では同じではない可能性があります。
しかし、私はこれに問題があったことを覚えています。したがって、私の変数宣言:
@jobOwnerNameVeryImportantToSetCorrectly='someSqlAuthenticatonUser'を選択します
私はBrentOzarの記事も読みましたが、SAが所有していない多くのジョブが有効になっている同様の状況にあります。私が調査したところ、所有権を「SA」に変更しないという説得力のある理由は見つかりませんでしたが、上記の2つの理由があります。
この変更から実行できないことを心配する必要はありません。私が注意するのは、1) SAとして実行するジョブと、2)環境に入った場合に、この変更を行った後に無効にされたジョブを有効にすることの2つだけです。
なぜ誰かがこれらの2つのことを行うのか、IDKですが、いつでもmsdbをバックアップしてから、開発サーバーまたはトレーニングサーバーでこれらの変更をテストできます。予期しないことが起こった場合に備えて、変更するジョブに注意してください。