SQL Server Agentジョブを実行した際に下記の様なエラーが発生した際の対処方法です。
ジョブは失敗しました。 所有者 [ドメイン名]\[ユーザー名] (ジョブ [ジョブ名]) にサーバーのアクセス権があるかどうかを確認できません (理由: Windows NT グループまたはユーザー ‘[ドメイン名]\[ユーザー名]‘ に関する情報を取得できませんでした。エラー コード 0x5。 [SQLSTATE 42000] (エラー 15404)).
このエラーは、SQL Server Agentサービスを実行しているアカウントが、実行しようとしてるジョブの所有者を確認しようとして、確認できなかったために発生しています。
今回の私のケースでは、次の組み合わせだったので、発生しました。
- SQL Server Agentサービスをマシンローカルのユーザーアカウント(アカウントLo)で実行していた
- ジョブの所有者がActiveDirectoryのドメインユーザー(アカウントD)だった
- よって、アカウントLoではアカウントDの情報が取得できない(ADにアクセスできないから)ため、エラーが発生した
解決方法ですが、2種類あります。
その1
SQL Server Agentサービスの実行アカウントを、ADにアクセスできるアカウントに変更する方法。
こうすれば、SQL Server Agentサービスがジョブ所有者の情報が取得できるので、エラー解決します。たぶん。
たぶん、と書いたのは、私はAD管理権限がないため、この方法がとれなかったので、結果確認していないからです。
その2
ジョブ所有者を、saに変更する方法。saじゃなくても、sysadminのSQLServer認証ユーザーでもOKと思われます。
こうすれば、マシンローカルアカウントでも、ADにアクセスする必要が無いから、エラーになりません。
今回はこの方法で解決しました。
参考資料
- http://www.windows-tech.info/15/22bcaae887fe1fa7.php
- http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1026067
- http://go4answers.webhost4life.com/Example/error-code-0x5-sqlstate-42000-error-175658.aspx
version: SQL Server 2008R2
Hi, everything is going nicely here and ofcourse every one
is sharing facts, that’s really excellent, keep up writing.