共用方式為


建立 SQL Server Agent Proxy

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中建立 SQL Server Agent Proxy。

SQL Server Agent Proxy 帳戶會定義可執行作業步驟的安全性內容。 每個代理都對應一個安全憑證。 若要設定特定作業步驟的許可權,請建立具有 SQL Server Agent 子系統所需許可權的 Proxy,然後將該 Proxy 指派給作業步驟。

Azure SQL 受控實例上,目前支援大部分但並非所有 SQL Server Agent 功能。 如需詳細資訊,請參閱 SQL 受控實例與 SQL Server 的 T-SQL 差異,或 SQL 受控實例中的 SQL Agent 作業限制

局限性

如果尚未提供認證,您必須先建立認證,才能建立 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 認證中指定的用戶許可權。 例如,您可以為沒有連線到 SQL Server 實例之許可權的使用者建立 Proxy。 在此情況下,使用該 Proxy 的作業步驟無法連線到 SQL Server。

如果使用者的登入具有 Proxy 的存取權,或使用者屬於具有 Proxy 存取權的任何角色,則用戶可以在作業步驟中使用 Proxy。

權限

只有 系統管理員成員 固定伺服器角色具有建立、修改或刪除 Proxy 帳戶的許可權。 非 系統管理員 固定伺服器角色成員的使用者,必須新增至 msdb 資料庫中下列其中一個 SQL Server Agent 固定資料庫角色,才能使用 Proxy:SQLAgentUserRoleSQLAgentReaderRole,或 SQLAgentOperatorRole

除了 Proxy 之外,建立認證還需要 ALTER ANY CREDENTIAL 許可權。

使用 SQL Server Management Studio (SSMS)

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

  2. 選取加號展開 SQL Server Agent

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

  4. 新增 Proxy 帳戶 對話框的 一般 頁面上,在 Proxy 名稱 欄位中輸入 Proxy 帳戶的名稱。

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

  6. 在 [描述] 方塊中,輸入 Proxy 帳戶的描述

  7. 在 [Active 至下列子系統下,選取此 Proxy 的適當子系統或子系統。

  8. 在 [主體] 頁面上,新增或移除登入或角色,以授與或移除 Proxy 帳戶的存取權。

  9. 完成後,選取 確定

使用 Transact-SQL

下列腳本會建立名為 CatalogApplicationCredential的認證,建立代理 Catalog application proxy,並將認證 CatalogApplicationCredential 指派給代理,並將代理的存取權授與 ActiveX Scripting 子系統。

  1. 建立認證 CatalogApplicationCredential

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. 建立 proxy Catalog application proxy,並將認證 CatalogApplicationCredential 指派給它。

    EXECUTE dbo.sp_add_proxy
        @proxy_name = 'Catalog application proxy',
        @enabled = 1,
        @description = 'Maintenance tasks on catalog application.',
        @credential_name = 'CatalogApplicationCredential';
    GO
    
    
  3. 授予代理 Catalog application proxy 存取 ActiveX 腳本子系統的權限。

    EXECUTE dbo.sp_grant_proxy_to_subsystem
        @proxy_name = N'Catalog application proxy',
        @subsystem_id = 2;
    GO