建立SQL Server Agent Proxy

適用于:yesSQL 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 ServerSQL 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:SQLAgentUserRoleSQLAgentReaderRoleSQLAgentOperatorRole

  • 如果除了 Proxy 之外還要建立認證,需要 ALTER ANY CREDENTIAL 權限。

使用 SQL Server Management Studio (SSMS)

若要建立 SQL Server Agent Proxy

  1. [物件總管] 中,選取加號展開您要在 SQL Server Agent 上建立 Proxy 的伺服器。

  2. 選取加號展開SQL Server Agent

  3. 以滑鼠右鍵按一下 [Proxy] 資料夾,然後選取 [新增 Proxy]

  4. [新 Proxy 帳戶] 對話方塊,於 [一般] 頁面上的 [Proxy 名稱] 方塊中輸入 Proxy 帳戶的名稱。

  5. [認證名稱] 方塊中,輸入 Proxy 帳戶將使用之安全性認證的名稱。

  6. [說明] 方塊中,輸入 Proxy 帳戶的說明。

  7. [對下列子系統有效]下,選取此 Proxy 的適當子系統。

  8. [主體] 頁面上,加入或移除登入或角色,藉此授與或移除 Proxy 帳戶的存取。

  9. 完成後,選取 [確定]

使用 Transact-SQL

若要建立 SQL Server Agent Proxy

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. 在標準列上,選取 [新增查詢] 。

  3. 下列腳本會建立名為 的 CatalogApplicationCredential 認證、建立 Proxy Catalog 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  
    

後續步驟