2017-02-21 189 views
1

我在我們的SQL Server 2012上設置爲管理員,並創建了一個運行過程的作業,該過程從2個連接的表中選擇記錄。這一切都工作正常,當我登錄到SSMS並手動啓動作業。問題是,當我嘗試安排作業運行時(即使我仍然登錄到SSMS),同一作業不會從第二個表中返回記錄,這就像連接不起作用。SQL Server代理權限與用戶權限

我檢查了SQL代理正在使用主要的SQL Server服務帳戶,我認爲它對所有內容都有權限。

任何關於故障排除的想法將不勝感激。

+0

工作歷史中的任何提示? – artm

+0

@artm,沒有錯誤消息,因爲作業運行良好 - 數據不完整。如果我從SSMS手動啓動作業,我會從兩個表中獲取數據,如果安排它忽略連接並僅返回一半數據。 –

回答

2

在sql作業的Steps頁面上,您可以將其告知「Run As」特定用戶。

否則,SQL Server代理下運行將有帳戶有權限的所有數據庫/表等

你應該能夠看到發生了什麼,當工作通過查看按計劃運行工作經歷。您可以通過右鍵單擊作業列表中的作業或右鍵單擊作業監視器中的作業並選擇「查看歷史記錄」來執行此操作。

希望這會有所幫助。

+0

當我手動運行沒有RunAs的程序 - 沒有問題。當我手動運行沒有RunAs的作業(運行相同的程序) - 沒有問題。當我安排沒有RunAs設置的作業時,它只給我一半的數據而沒有錯誤。 (我們使用傳遞身份驗證),當我嘗試將我的憑據放入RunAs框時 - 它甚至無法手動運行並出現錯誤:服務器用戶'%。* ls'不是數據庫'%'中的有效用戶。 * ls'的。這安全令我困惑。 –

+0

數據庫最近是否從另一臺服務器移出?請參閱此文章: https://support.microsoft.com/en-us/help/240872/how-to-resolve-permission-issues-when-you-move-a-database-between-servers-that -are-running-sql-server – OnoMrBill

+0

除了我之前提到的文章中的信息之外,您或其他管理員應該檢查您計劃用於定期運行作業的服務器登錄名和數據庫用戶。 快速問題:在同一個數據庫中是2個連接的表嗎? 我們通常會使用我們所謂的「服務賬戶」。通常是一個對數據庫具有db_owner權限的SQL登錄。 您可以將其中一個設置爲測試,以驗證它是否有效,然後稍後再調整安全設置。 – OnoMrBill

0

是一個腐敗的工作。我刪除了這個工作並重新創建了一個新工作,並且按預期工作。