Condividi tramite


Creare un proxy di SQL Server Agent

si applica a:SQL Server

Questo articolo descrive come creare un proxy di SQL Server Agent in SQL Server usando SQL Server Management Studio o Transact-SQL.

Un account proxy di SQL Server Agent definisce un contesto di sicurezza in cui è possibile eseguire un passaggio del processo. Ogni proxy corrisponde a una credenziale di sicurezza. Per impostare le autorizzazioni per un passaggio di processo specifico, creare un proxy con le autorizzazioni necessarie per un sottosistema di SQL Server Agent e quindi assegnare tale proxy al passaggio del processo.

In Istanza gestita di Azure SQL, la maggior parte delle funzionalità di SQL Server Agent, ma non tutte, sono attualmente supportate. Per informazioni dettagliate, vedere differenze T-SQL tra Azure SQL Managed Instance e SQL Server o limitazioni dei processi di SQL Agent su Azure SQL Managed Instance.

Limitazioni

È necessario creare una credenziale prima di creare un proxy se non ne è già disponibile uno.

I proxy di SQL Server Agent usano le credenziali per archiviare informazioni sugli account utente di Windows. L'utente specificato nella credenziale deve disporre dell'autorizzazione "Access this computer from the network" (SeNetworkLogonRight) nel computer in cui è in esecuzione SQL Server.

SQL Server Agent controlla l'accesso al sottosistema per un proxy e concede l'accesso al proxy ogni volta che la fase del processo viene eseguita. Se il proxy non ha più accesso al sottosistema, il passaggio del processo ha esito negativo. In caso contrario, SQL Server Agent rappresenta l'utente specificato nel proxy ed esegue il passaggio del processo. Per un elenco dei sottosistemi proxy, vedere sp_grant_proxy_to_subsystem.

La creazione di un proxy non modifica le autorizzazioni per l'utente specificato nella credenziale per il proxy. Ad esempio, è possibile creare un proxy per un utente che non dispone dell'autorizzazione per connettersi a un'istanza di SQL Server. In questo caso, i passaggi del processo che usano tale proxy non sono in grado di connettersi a SQL Server.

Se l'account di accesso dell'utente ha accesso al proxy o l'utente appartiene a qualsiasi ruolo con accesso al proxy, l'utente può usare il proxy in un passaggio del lavoro.

Autorizzazioni

Solo i membri del sysadmin ruolo predefinito del server dispongono dell'autorizzazione per creare, modificare o eliminare account proxy. Gli utenti che non sono membri del ruolo predefinito del server sysadmin devono essere aggiunti a uno dei ruoli predefiniti del database di SQL Server Agent seguenti nel database msdb per usare proxy: SQLAgentUserRole, SQLAgentReaderRoleo SQLAgentOperatorRole.

Richiede l'autorizzazione ALTER ANY CREDENTIAL se si crea una credenziale in aggiunta al proxy esistente.

Usare SQL Server Management Studio (SSMS)

  1. In Esplora oggetti, selezionare il segno più per espandere il server nel quale si desidera creare un proxy nel SQL Server Agent.

  2. Selezionare il segno più per espandere SQL Server Agent.

  3. Fare clic con il pulsante destro del mouse sulla cartella Proxies e selezionare Nuovo Proxy.

  4. Nella finestra di dialogo nuovo account proxy, nella pagina Generale, immettere il nome dell'account proxy nella casella Nome proxy.

  5. Nella casella nome credenziali immettere il nome delle credenziali di sicurezza che verranno usate dall'account proxy.

  6. Nella casella Descrizione immettere una descrizione per l'account proxy

  7. In Attivo nei sottosistemi seguentiselezionare il sottosistema o i sottosistemi appropriati per questo proxy.

  8. Nella pagina Principals, aggiungi o rimuovi i logins o i ruoli per concedere o revocare l'accesso all'account proxy.

  9. Al termine, selezionare OK.

Usare Transact-SQL

Lo script seguente crea una credenziale denominata CatalogApplicationCredential, crea Catalog application proxy proxy e assegna le credenziali CatalogApplicationCredential e concede al proxy l'accesso al sottosistema di script ActiveX.

  1. Creare la credenziale CatalogApplicationCredential.

    USE msdb;
    GO
    
    CREATE CREDENTIAL CatalogApplicationCredential
        WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!';
    GO
    
  2. Creare il proxy Catalog application proxy e assegnargli le credenziali CatalogApplicationCredential.

    EXECUTE dbo.sp_add_proxy
        @proxy_name = 'Catalog application proxy',
        @enabled = 1,
        @description = 'Maintenance tasks on catalog application.',
        @credential_name = 'CatalogApplicationCredential';
    GO
    
    
  3. Concedere al proxy Catalog application proxy l'accesso al sottosistema di scripting ActiveX.

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