2015-07-21 219 views
0

我已經梳理了網絡,以搜索從遠程數據庫運行的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作業中失敗。我必須做些什麼才能讓Agent Job工作?

+0

它可能是您的代理在沒有足夠權限訪問鏈接服務器的帳戶下運行。代理運行在哪個acc下? – OzrenTkalcecKrznaric

回答

1

參見this

總之,似乎發生這種情況:

當您在運行不能由系統 管理員帳戶擁有一個SQL Server代理作業,SQL Server代理運行SETUSER冒充 的主人工作。

如果作業使用鏈接的服務器,則作業可能失敗,因爲執行SETUSER後不允許遠程訪問 。

因此,無論是將作業的所有權更改爲sysadmin acc,還是將鏈接的服務器映射更改爲例如使用模擬。我沒有看到任何其他選擇。

+0

謝謝奧茲倫。我正在建立一個憑證,然後我將設置一個代理。或者,我如何將工作所有權更改爲系統管理員?謝謝 – dLight

+0

SSMS:轉到對象資源管理器,展開SQL Server代理,展開作業。找到你的工作,點擊右鍵,選擇屬性。通過編輯所有者字段更改用戶。使用sa(如果可以的話)或其他具有sysadmin角色的用戶。 – OzrenTkalcecKrznaric

+0

非常感謝你Ozren。有用! – dLight

相關問題