Von Zeit zu Zeit (z. B. ~ Monate) meldet ein stündlicher SQL Server-Agent-Job einen Fehler 15404 und setzt dies fort, bis er eingreift.
[298] SQLServer-Fehler: 15404, Informationen zur Windows NT-Gruppe / zum Windows NT-Benutzer 'DOMAIN_NAME \ SomeDomainAccount', Fehlercode 0x6e, konnten nicht abgerufen werden. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
Manchmal tritt der erste Fehler unmittelbar nach einem manuellen Neustart der SQL Server Engine- und SQL Server Agent-Dienste auf. Das Problem kann durch einen Neustart des Computers behoben werden.
Der Jobbesitzer ist der in der Fehlermeldung aufgeführte Name und ein SQL Server-Administrator.
Das SQL Server Engine-Dienstkonto scheint ein Dienstkonto zu sein (ich glaube, es ist das Standardinstallationskonto (eine Stufe besser als der generische NetworkService, um Interferenzen zwischen Engine- / Agent-Instanzen zu verhindern):
NT Service\MSSQL$INSTNAME
Es wäre eine Sache, wenn der Job immer fehlschlagen würde, aber da der Job nach einem Neustart erfolgreich ist, denke ich, dass ein Dienstkonto wie funktionieren soll und dass es ein A / D-Timing-Problem oder möglicherweise einen Fehler gibt. Wenn die IT nach der A / D-Konfiguration gefragt wird, lautet die Antwort normalerweise "nichts hat sich geändert".
- Ein Neustart der Engine und der Agentendienste kann dazu führen, dass der Job fehlschlägt.
- Ein Neustart des Computers behebt das Problem.
- Ein sofortiger nachfolgender Neustart der Engine und des Agenten führt nicht mehr zum Fehlschlagen des Jobs.
quelle
Antworten:
Keine Lösung, aber Sie können das Problem umgehen, indem Sie den Jobbesitzer zu einem SQL-Konto machen.
Bei jedem Start eines Jobs überprüft SQL Server die Identität des Jobbesitzers und überprüft, ob er über die Berechtigung zum Ausführen des Jobs verfügt. Wenn der Eigentümer ein Windows-Konto ist, muss die Engine Active Directory abfragen. Wenn dies aus irgendeinem Grund fehlschlägt, wird der Job nicht ausgeführt. Dies kann daran liegen, dass der AD-Server ausgelastet, ausgefallen oder vom Netzwerk getrennt ist oder dass das SQL Server-Dienstkonto keine Rechte hat.
Da es unmittelbar nach dem Neustart funktioniert, denke ich, dass es möglicherweise etwas mit zwischengespeicherten Anmeldeinformationen zu tun hat. Windows speichert die Anmeldeinformationen, die für die spätere Verwendung gesucht werden. Dieser Cache wird beim Neustart gelöscht. Vielleicht beschädigt etwas den Cache.
quelle
Ich hatte ein Problem mit einer Instanz, die von Domäne A nach Domäne B verschoben wurde, und überprüfte überall die Berechtigungen und gewährte überall die volle Kontrolle. Geändertes Dienstkonto, Jobbesitz, neuer Job erstellt ... Nichts hat funktioniert. Es wurde derselbe Name des Dienstbenutzers B \ sqlservice und A \ sqlservice gefunden, der als Anmeldung auf SQL Server vorhanden war. Nach dem Löschen der A \ sqlservice-Anmeldung funktionierte alles einwandfrei. Dies bedeutet, dass einige Windows-Zeiger falsch waren
quelle
B\sqlservice
es sich um das Konto handelte, über das keine Informationen abgerufen werden konnten.