SQL 作业步骤以不同的 sql 帐户运行

Geo*_*wdy 12 security sql-server sql-server-2008-r2 sql-server-agent

我很好奇如何设置要作为不同 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;
Run Code Online (Sandbox Code Playgroud)

当它通过 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.
Run Code Online (Sandbox Code Playgroud)

当所有这些表都存在于本地数据库中时,我不清楚为什么它会尝试访问远程服务器。

小智 17

如果您正在配置 T-SQL 作业步骤,请转到“高级”页面并将“以用户身份运行”配置为您选择的登录名。 在此处输入图片说明

如果您正在使用其他作业步骤类型(如 PowerShell),则需要配置代理帐户。