實作 SQL Server Agent 安全性

SQL Server Agent 可以讓資料庫管理員在只具有執行作業步驟所需權限的安全內容中執行作業步驟,此權限是由 SQL Server Agent Proxy 所決定。若要設定特定作業步驟的權限,請建立具有必要權限的 Proxy,然後將該 Proxy 指派給作業步驟。您可以將 Proxy 指派給多個作業步驟。對於要求相同權限的作業步驟,可以使用相同的 Proxy。

[!附註]

從 SQL Server 2000 升級之後,在升級前存在的所有使用者 Proxy 帳戶都會變更為暫存全域 Proxy 帳戶 UpgradedProxyAccountUpgradedProxyAccount 只會被授與對明確使用之子系統的存取權限,升級後並不會有所有子系統的存取權限。

下一節將解釋您必須授與使用者哪些資料庫角色,他們才能使用 SQL Server Agent 來建立或執行作業。

授與 SQL Server Agent 的存取權

若要使用 SQL Server Agent,使用者必須是下列一或多個固定資料庫角色的成員:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

這些角色儲存在 msdb 資料庫中。根據預設,沒有使用者是這些資料庫角色的成員。您必須明確授與這些角色的成員資格。隸屬於系統管理員() 固定伺服器角色的使用者將能夠存取 SQL Server Agent,且不需要是這些固定資料庫角色的成員就能使用 SQL Server Agent。若使用者並非其中一個資料庫角色或系統管理員 (sysadmin) 角色的成員,當他們使用 SQL Server Management Studio 連線到 SQL Server 時,將無法使用 SQL Server Agent 節點。

這些資料庫角色的成員可以檢視與執行自己所擁有的物件,並建立以現有 Proxy 帳戶身分執行的作業步驟。如需有關與每個角色關聯之特定權限的詳細資訊,請參閱<SQL Server Agent 固定資料庫角色>。

系統管理員 (sysadmin) 固定伺服器角色的成員擁有建立、修改與刪除 Poxy 帳戶的權限。系統管理員 (sysadmin) 角色的成員擁有建立以 SQL Server Agent 服務帳戶身分執行之作業步驟 (不指定 Proxy) 的權限,此帳戶是用來啟動 SQL Server Agent 的帳戶。

指導方針

請依照下列指導方針來改進 SQL Server Agent 實作的安全性。

  • 為 Proxy 建立專屬的使用者帳戶,並只使用這些 Proxy 使用者帳戶來執行作業步驟。

  • 只授與必要的權限給 Proxy 使用者帳戶。對於指派給特定 Proxy 帳戶的作業步驟,只授與它們執行所需的必要權限。

  • 不要在隸屬於 Windows 系統管理員 (Administrators) 群組的 Microsoft Windows 帳戶下執行 SQL Server Agent 服務。