Creare un proxy di SQL Server Agent

Si applica a:SQL Server

Questo argomento illustra 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 l'esecuzione di un passaggio di processo. Ogni proxy corrisponde a una credenziale di sicurezza Per impostare le autorizzazioni per un particolare passaggio di processo, creare un proxy dotato delle autorizzazioni necessarie per un sottosistema di SQL Server Agent e quindi assegnarlo al passaggio di processo.

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

Prima di iniziare

Limitazioni e restrizioni

  • Se non disponibili, prima di creare un proxy è necessario creare le credenziali.

  • I proxy di SQL Server Agent usano le credenziali per archiviare le informazioni sugli account utente di Windows. L'utente specificato nelle credenziali deve avere l'autorizzazione "Accedi al computer dalla rete" (SeNetworkLogonRight) per il computer in cui è in esecuzione SQL Server.

  • SQL Server Agent verifica l'accesso al sottosistema per un proxy e concede l'accesso al proxy a ogni esecuzione del passaggio di processo. Se il proxy non dispone più di accesso al sottosistema, il passaggio di processo non viene eseguito correttamente. In caso contrario, SQL Server Agent rappresenta l'utente specificato nel proxy ed esegue il passaggio di processo. Per un elenco dei sottosistemi proxy, vedere sp_grant_proxy_to_subsystem.

  • La creazione di un proxy non implica la modifica delle autorizzazioni per l'utente specificato nella credenziale del proxy. È possibile ad esempio creare un proxy per un utente che non dispone delle autorizzazioni per connettersi a un'istanza di SQL Server. In questo caso, i passaggi di processo che usano il proxy non sono in grado di connettersi a SQL Server.

  • Se l'account di accesso per l'utente viene utilizzato per l'accesso al proxy oppure se l'utente appartiene a un qualsiasi ruolo che prevede l'accesso al proxy, l'utente potrà utilizzare il proxy in un passaggio di processo.

Sicurezza

Autorizzazioni

  • Solo i membri del ruolo predefinito del server sysadmin sono autorizzati a creare, modificare o eliminare gli 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 nel database msdb per poter usare i proxy: SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole.

  • Richiede l'autorizzazione ALTER ANY CREDENTIAL se si creano credenziali oltre al proxy.

Usare SQL Server Management Studio (SSMS)

Per creare un proxy di SQL Server Agent

  1. In Esplora oggetti selezionare il segno più per espandere il server in cui si vuole creare un proxy in SQL Server Agent.

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

  3. Fare clic con il pulsante destro del mouse sulla cartella Proxy e scegliere Nuovo proxy.

  4. Nella pagina Generale della finestra di dialogo Nuovo account proxy immettere il nome del nuovo account proxy nella casella Nome proxy .

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

  6. Immettere una descrizione dell'account proxy nella casella Descrizione .

  7. In Attivo nei sottosistemi seguenti, selezionare il sottosistema o i sottosistemi adatti per questo proxy.

  8. Nella pagina Entità aggiungere o rimuovere account di accesso oppure ruoli per concedere o negare l'accesso all'account proxy.

  9. Al termine selezionare OK.

Usare Transact-SQL

Per creare un proxy di SQL Server Agent

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Lo script seguente crea una credenziale denominata CatalogApplicationCredential, crea il proxy Catalog application proxy e gli assegna le credenziali CatalogApplicationCredential, quindi concede al proxy l'accesso al sottosistema di scripting ActiveX. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.

    -- 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  
    

Passaggi successivi