Мне интересно, как настроить шаг задания SQL для выполнения в качестве другой учетной записи для входа в SQL. Похоже, мне нужно настроить новую учетную запись прокси, которая требует существующих учетных данных. Когда я создаю учетные данные, мой единственный вариант - использовать учетные данные для входа в Windows.
Работа, которую я пытаюсь выполнить, ниже. Существуют и другие дополнительные операторы, но когда я устанавливаю шаг задания для запуска в качестве входа в систему SQL, он не выполняется.
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;
Когда это выполняется через шаг задания SQL, происходит сбой.
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.
Мне неясно, почему он пытается получить доступ к удаленному серверу, когда все эти таблицы существуют в локальной базе данных.
sql-server
sql-server-2008-r2
security
sql-server-agent
Джефф Доуди
источник
источник
Ответы:
Если вы настраиваете шаг задания T-SQL, перейдите на страницу «Дополнительно» и настройте «Запуск от имени пользователя» для входа в систему по вашему выбору.
Если вы работаете с другими типами шагов работы, такими как PowerShell, для этого потребуется настроить учетную запись прокси.
источник
Используйте
EXECUTE AS
в начале или создайте хранимую процедуру, которая выполняется в определенном контексте.источник