建立SQL Server Agent Proxy
適用于:SQL Server (所有支援的版本)
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在SQL Server中建立SQL Server Agent Proxy。
SQL Server Agent Proxy 帳戶會定義可執行作業步驟的安全性內容。 每個 Proxy 都對應於一個安全性認證。 若要設定特定作業步驟的許可權,請建立具有SQL Server Agent子系統所需許可權的 Proxy,然後將該 Proxy 指派給作業步驟。
Azure SQL 受控執行個體目前支援多數 (但非全部) 的 SQL Server Agent 功能。 如需詳細資訊,請參閱Azure SQL 受控執行個體 T-SQL與 SQL Server或SQL Agent 作業 SQL 受管理執行個體限制的差異。
開始之前
限制事項
在建立 Proxy 之前,如果沒有認證可用,則必須先建立認證。
SQL Server Agent Proxy 會使用認證來儲存Windows使用者帳戶的相關資訊。 認證中指定的使用者必須具有執行SQL Server
SeNetworkLogonRight
之電腦上的「從網路存取這部電腦」許可權 () 。SQL Server Agent會檢查 Proxy 的子系統存取權,並在每次作業步驟執行時提供 Proxy 的存取權。 如果 Proxy 不再擁有子系統的存取權,作業步驟就會失效。 否則,SQL Server Agent模擬 Proxy 中指定的使用者,並執行作業步驟。 如需 Proxy 子系統的清單,請參閱 sp_grant_proxy_to_subsystem。
建立 Proxy 並不會改變 Proxy 認證中所指定之使用者的權限。 例如,您可以為沒有連線到實例的使用者建立 Proxy SQL Server。 在此情況下,使用該 Proxy 的作業步驟無法連線到SQL Server。
如果使用者的登入身分可以存取 Proxy,或者使用者隸屬於可存取 Proxy 的角色,該使用者就可以使用作業步驟中的 Proxy。
安全性
權限
只有 系統管理員 (sysadmin) 固定伺服器角色的成員才擁有建立、修改或刪除 Proxy 帳戶的權限。 不是sysadmin固定伺服器角色成員的使用者必須新增至資料庫中下列其中一個SQL Server Agent固定資料庫角色
msdb
,才能使用 Proxy:SQLAgentUserRole、SQLAgentReaderRole或SQLAgentOperatorRole。如果除了 Proxy 之外還要建立認證,需要 ALTER ANY CREDENTIAL 權限。
使用 SQL Server Management Studio (SSMS)
若要建立 SQL Server Agent Proxy
在[物件總管] 中,選取加號展開您要在 SQL Server Agent 上建立 Proxy 的伺服器。
選取加號展開SQL Server Agent。
以滑鼠右鍵按一下 [Proxy] 資料夾,然後選取 [新增 Proxy]。
在 [新 Proxy 帳戶] 對話方塊,於 [一般] 頁面上的 [Proxy 名稱] 方塊中輸入 Proxy 帳戶的名稱。
在 [認證名稱] 方塊中,輸入 Proxy 帳戶將使用之安全性認證的名稱。
在 [說明] 方塊中,輸入 Proxy 帳戶的說明。
在 [對下列子系統有效]下,選取此 Proxy 的適當子系統。
在 [主體] 頁面上,加入或移除登入或角色,藉此授與或移除 Proxy 帳戶的存取。
完成後,選取 [確定]。
使用 Transact-SQL
若要建立 SQL Server Agent Proxy
在物件總管中,連線到資料庫引擎的執行個體。
在標準列上,選取 [新增查詢] 。
下列腳本會建立名為 的
CatalogApplicationCredential
認證、建立 ProxyCatalog application proxy
,並將認證CatalogApplicationCredential
指派給它,並將 proxy 存取權授與ActiveX腳本子系統。 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。-- creates credential CatalogApplicationCredential USE msdb ; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO -- creates proxy "Catalog application proxy" and assigns -- the credential 'CatalogApplicationCredential' to it. EXEC dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential' ; GO -- grants the proxy "Catalog application proxy" access to -- the ActiveX Scripting subsystem. EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'Catalog application proxy', @subsystem_id = 2 ; GO