Ich bin gespannt, wie man einen SQL-Jobschritt einrichtet, der als anderes SQL-Anmeldekonto ausgeführt wird. Es scheint, dass ich ein neues Proxy-Konto einrichten muss, für das ein vorhandener Berechtigungsnachweis erforderlich ist. Wenn ich einen Berechtigungsnachweis erstelle, kann ich nur einen Windows-Anmeldeinformationsnachweis verwenden.
Der Job, den ich ausführen möchte, ist unten aufgeführt. Es gibt andere zusätzliche Anweisungen, aber wenn ich den Jobschritt so einstelle, dass er als SQL-Anmeldung ausgeführt wird, schlägt er fehl.
insert into [dbo].[TableA]
SELECT
ss.[Ref_ID]
,mm.[studentID]
,mm.[studentPersonID]
,mm.[studentFirstname]
FROM [dbo].[TableB] mm
left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID
where ss.Ref_ID is not null;
Wenn dies durch einen SQL-Jobschritt ausgeführt wird, schlägt dies fehl.
Executed as user: an_admin_account. Access to the remote server is denied because the current security context is not trusted. [SQLSTATE 42000] (Error 15274). The step failed.
Ich bin mir nicht sicher, warum versucht wird, auf einen Remote-Server zuzugreifen, wenn alle diese Tabellen in der lokalen Datenbank vorhanden sind.
quelle
Antworten:
Wenn Sie einen T-SQL-Jobschritt konfigurieren, rufen Sie die erweiterte Seite auf und konfigurieren Sie "Als Benutzer ausführen" für das Login Ihrer Wahl.
Wenn Sie mit anderen Jobschritttypen wie PowerShell arbeiten, muss ein Proxy-Konto konfiguriert werden.
quelle
Verwenden Sie diese Option
EXECUTE AS
zu Beginn oder erstellen Sie eine gespeicherte Prozedur, die in einem bestimmten Kontext ausgeführt wird.quelle