Jestem ciekawy, jak skonfigurować krok zadania SQL, który będzie wykonywany jako inne konto logowania SQL. Wygląda na to, że muszę założyć nowe konto proxy, które wymaga istniejącego poświadczenia. Podczas tworzenia poświadczenia moją jedyną opcją jest użycie poświadczenia logowania do systemu Windows.
Zadanie, które próbuję uruchomić, jest poniżej. Istnieją inne dodatkowe instrukcje, ale gdy ustawię krok zadania, aby działał jako login SQL, nie powiedzie się.
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;
Uruchomienie tego kroku zadania SQL kończy się niepowodzeniem.
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.
Nie jestem pewien, dlaczego próbuje uzyskać dostęp do zdalnego serwera, gdy wszystkie te tabele istnieją w lokalnej bazie danych.
sql-server
sql-server-2008-r2
security
sql-server-agent
Geoff Dawdy
źródło
źródło
Odpowiedzi:
Jeśli konfigurujesz krok zadania T-SQL, przejdź do strony Zaawansowane i skonfiguruj „Uruchom jako użytkownik” na wybrany przez siebie login.
Jeśli pracujesz z innymi typami zadań, takimi jak PowerShell, konieczne będzie skonfigurowanie konta proxy.
źródło
Użyj
EXECUTE AS
na początku lub utwórz procedurę przechowywaną, która będzie wykonywana w określonym kontekście.źródło