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 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.
Limiti
È 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 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 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 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.
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 seguenti nel msdb
database per usare proxy: SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole.
Richiede l'autorizzazione ALTER ANY CREDENTIAL
se si creano le credenziali oltre al proxy.
Usare SQL Server Management Studio (SSMS)
In Esplora oggetti selezionare il segno più per espandere il server in cui si vuole creare un proxy in SQL Server Agent.
Selezionare il segno più per espandere SQL Server Agent.
Fare clic con il pulsante destro del mouse sulla cartella Proxy e scegliere Nuovo proxy.
Nella pagina Generale della finestra di dialogo Nuovo account proxy immettere il nome del nuovo account proxy nella casella Nome proxy .
Nella casella Nome credenziali immettere il nome delle credenziali di sicurezza che verranno utilizzate dall'account proxy.
Immettere una descrizione dell'account proxy nella casella Descrizione .
In Attivo nei sottosistemi seguenti, selezionare il sottosistema o i sottosistemi adatti per questo proxy.
Nella pagina Entità aggiungere o rimuovere account di accesso oppure ruoli per concedere o negare l'accesso all'account proxy.
Al termine selezionare OK.
Usare Transact-SQL
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.
Creare credenziali
CatalogApplicationCredential
.USE msdb; GO CREATE CREDENTIAL CatalogApplicationCredential WITH IDENTITY = 'REDMOND/TestUser', SECRET = 'G3$1o)lkJ8HNd!'; GO
Creare il proxy
Catalog application proxy
e assegnarvi le credenzialiCatalogApplicationCredential
.EXECUTE dbo.sp_add_proxy @proxy_name = 'Catalog application proxy', @enabled = 1, @description = 'Maintenance tasks on catalog application.', @credential_name = 'CatalogApplicationCredential'; GO
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