我已经梳理了网络,寻找从针对远程数据库运行的Sql Server Agent Job返回的错误的答案,但却无法使其工作。错误是:
Msg 15274, Sev 16, State 1, Line 1 :
Access to the remote server is denied because the current security context is not trusted. [SQLSTATE 42000]
我已将服务器设置链接如下:
EXEC sp_addlinkedserver @server=N'serverName'
, @srvproduct=N''
, @provider=N'SQLNCLI'
, @datasrc=N'serverName';
同样跑了:
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'serverName'
, @useself = false
, @locallogin = NULL
, @rmtuser = 'sa'
, @rmtpassword = 'userpassword'
当我执行EXEC [ServerName].[DbName].[SchemaName].[StoredProcName]
时,我获得了成功返回的值,但在Sql Agent Job中查询失败。我该怎么办才能让Agent Job工作?
答案 0 :(得分:1)
请参阅this。
简而言之,似乎发生了这种情况:
运行不属于系统的SQL Server代理作业时 管理员帐户,SQL Server代理运行SETUSER以模拟 这份工作的主人。
如果作业使用链接服务器,则作业可能会因远程访问而失败 执行SETUSER后不允许使用。
因此,您要么将作业的所有权更改为sysadmin acc,要么将链接服务器映射更改为例如使用假冒。我没有看到任何其他选择。