Ich habe eine gespeicherte Prozedur, die Daten in eine Zieltabelle lädt und funktioniert gut, wenn in einer Sitzung mit meinen AD-Anmeldeinformationen ausgeführt.SQL Server führt Prozedur als Benutzer
Wenn ich versuche, es in einem Job auszuführen (wieder mit meinen AD-Details in der Option Ausführen als) plötzlich hat der Login keinen Zugriff auf einen der DBs.
I verwendet
EXEC SP1
Welche fein gearbeitet.
verwendet I (emuliert die gespeicherte Prozedur in einem Auftrag ausgeführt)
EXECUTE AS user = 'Domain\JDoe'
EXECUTE SP1
REVERT
Welche fehlgeschlagen.
Warum schlägt die gespeicherte Prozedur beim Ausführen mit denselben Anmeldeinformationen fehl, die in einem anderen Sitzungsfenster erfolgreich verwendet werden?
Vielen Dank im Voraus
Haben Sie in Betracht gezogen, Ihren SQL-Job oder Ihre Jobschritte als einen bestimmten (Domänen-) Benutzer auszuführen, anstatt ihn in Ihrer Ausführung zu definieren? – Jens
@Jens, ja, das war mein erster Versuch. Ich habe den Jobverlauf überprüft und festgestellt, dass die Fehlermeldung besagt, dass ich nicht den richtigen Zugriff auf einen der erforderlichen DBs hatte. Nachdem ich gesehen habe, dass ich den SP manuell mit der EXEC-Leitung ausgeführt habe, die so funktioniert hat, habe ich die EXEC AS mit meinem Benutzernamen versucht und es ist mit demselben Fehler wie der Job gescheitert. – Powell21
Welche DBMS verwendest du? – jarlh