2009-03-20 17 views
0

Ich habe ein seltsames Szenario, das ich derzeit nicht erklären kann. Ich lebe in der Hoffnung, dass es nur "das Freitagsgefühl" ist oder dass ein paar gütige Sohlen hier mein Gehirn rausholen und mich vor endlosen Schleifen von "Aber warum?" :)SQL Server 2005 - Verknüpfte Server & Agent-Jobs

Zwei Server, auf denen SQL Server 2005, mit DNS-Einträge aus:

1. ServerA 
2. ServerB 

(Na ja, sind sie nicht wirklich genannt, aber es genügt ...)

On Bei beiden SQL Server-Instanzen sind Verbindungsserver konfiguriert, die auf den anderen Server verweisen.

Aus offensichtlichen Gründen der Sicherheit der LinkedServer Sicherheitskonfiguration ist eingestellt auf:

- Be made using the login's current security context 

Der andere "verlinkte Server Options" ist ...

Collation Compatible: True 
Data Access:   True 
RPC:     True 
RPC Out:    True 
Use Remote Collation: True 
Collation Name:  <blank> 
Connection Timeout: 30 
Command Timeout:  10 

Ein Login ist mit dem gleichen Passwort erstellt auf beide Instanzen. Die Logins erhalten die entsprechenden Ausführungsrechte für die relevanten gespeicherten Prozeduren.

Ich schreibe einige Code, und führen Sie es unter diesem Login und es funktioniert alles hoorah


Aber wenn ich ein Agent-Auftrag erstellen, um diese gespeicherten Prozeduren auszuführen alles schief geht. Der Besitzer des Agent-Auftrag ist ‚automated_job_login‘ aber meine Fehlerprotokollierung gibt folgendes: - Anmeldung für den Benutzer ‚automated_job_login‘ failed

(Wieder dieser Name die Schuldigen zu schützen geändert wurde.)


Ich kann nicht für das Leben von mir herausfinden, warum es funktioniert, wenn ich mich als dieser Benutzer anmelde, aber die Job-Fehler beim Verbinden mit dem Verbindungsserver. (Es ist definitiv an der Stelle der Verbindung zum verbundenen Server.)

Um die Dinge verwirrender zu machen, wenn ich die Konfiguration der Linked Server Security auf "Mit diesem sicheren Kontext ändern:" und "automated_job_login" mit dem richtigen Passwort angeben , es funktioniert gut.

Ich vermisse etwas, ich weiß, ich muss sein, aber ich kann was nicht finden. Ich habe die Dokumentation gelesen, bis meine Augen bluten und ich versagt habe. Bitte helfen Sie mir :)


[Verlassen des Linked Server Secuiry Option als „dieses secuirty Kontext gemacht werden:“ ist keine Option, da diese alle Nutzer dieses Servers unnaceptable Zugriffsebenen auf dem anderen Server geben würde. ]

Antwort

3

Der SQL-Agent-Job gehört möglicherweise Ihrem Login, wird jedoch in diesem Anmeldekontext nicht ausgeführt. Es ist in SQL Agent service account context

Da Sie über SQL Server 2005 verfügen, können Sie EXEC AS USER = 'Mylogin' als eine gespeicherte Proc Option verwenden.

Andernfalls müssen Sie den Datenbankbenutzernamen mit dem Parameter sp_add_jobstep festlegen. In SSMS können Sie den Kontext festlegen. Der Job-Besitz unterscheidet sich geringfügig von der Einstellung von ths, IIRC.

+0

Danke für die Hilfe, habe mich schon mal darum gekümmert. Grundsätzlich, obwohl meine Anmeldung in der Sysadmin-Gruppe ist, kann ich immer noch nicht die Option "Ausführen als" im Agenten-Job ... – MatBailie

+0

vielleicht auf der Ebene sp_add_jobstep dann ändern? Entschuldigung, aber ich kann nicht genau in meinem Shop überprüfen. Können Sie jedoch Teile des Jobs ändern? – gbn

+0

Ich habe einen Artikel gefunden, der darauf hinweist, dass es zwei Stellen gibt, an denen "Ausführen als" eingestellt werden kann, und nur die zweite ist für T-SQL-Jobs geeignet. Leider bekomme ich immer noch den fehlgeschlagenen Login-Fehler * geht schielen *. http://tinyurl.com/cyaeyw – MatBailie