Condividi tramite


Ruoli di database predefiniti di SQL Server Agent

SQL Server dispone dei ruoli predefiniti del database msdb seguenti, che consentono agli amministratori di controllare in modo più capillare l'accesso a SQL Server Agent. Sono previsti i seguenti ruoli, elencati a partire da quello che ha meno privilegi:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Quando gli utenti che non sono membri di uno di questi ruoli sono connessi a SQL Server in SQL Server Management Studio, il nodo di SQL Server Agent non è visibile in Esplora oggetti. Per poter usare SQL Server Agent, un utente deve essere membro di uno di questi ruoli predefiniti del database o membro del ruolo predefinito del server sysadmin.

Autorizzazioni dei ruoli di database predefiniti SQL Server Agent

Le autorizzazioni dei ruoli di database SQL Server Agent sono concentriche le une rispetto alle altre: i ruoli con privilegi di livello più alto ereditano le autorizzazioni dei ruoli con privilegi di livello più basso in oggetti di SQL Server Agent (compresi avvisi, operatori, processi, pianificazioni e proxy). Se ad esempio ai membri del ruolo SQLAgentUserRole con privilegi di livello basso è stato concesso l'accesso a proxy_A, i membri di entrambi i ruoli SQLAgentReaderRole e SQLAgentOperatorRole hanno automaticamente accesso a questo proxy anche se l'accesso al proxy_A non è stato esplicitamente concesso. Ciò può avere implicazioni a livello di sicurezza e nelle sezioni seguenti verranno esaminate queste implicazioni ruolo per ruolo.

Autorizzazioni per SQLAgentUserRole

SQLAgentUserRole è il ruolo predefinito del database di SQL Server Agent con meno privilegi. Dispone di autorizzazioni solo su operatori, processi locali e pianificazioni di processi. I membri del ruolo SQLAgentUserRole hanno autorizzazioni solo sui processi locali e le pianificazioni di processo di cui sono proprietari. Essi non possono utilizzare processi multiserver (processi per server master e di destinazione) e non possono modificare la proprietà dei processi per ottenere l'accesso a processi di cui non sono già proprietari. I membri del ruolo SQLAgentUserRole possono visualizzare l'elenco dei proxy disponibili solo nella finestra di dialogo Proprietà passaggio processo di SQL Server Management Studio. Ai membri del ruolo SQLAgentUserRole è visibile solo il nodo Processi in Esplora oggetti di SQL Server Management Studio.

Importante

Prendere in considerazione le implicazioni di sicurezza prima di concedere l'accesso proxy ai membri di SQL ServerAgentdatabaseroles. I ruoli SQLAgentReaderRole e SQLAgentOperatorRole sono automaticamente membri del ruolo SQLAgentUserRole. Ciò significa che i membri dei ruoli SQLAgentReaderRole e SQLAgentOperatorRole hanno accesso a tutti i proxy di SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole e possono usare questi proxy.

La tabella seguente contiene il riepilogo delle autorizzazioni per il ruolo SQLAgentUserRole sugli oggetti di SQL Server Agent.

Azione Operatori Processi locali

(solo processi di proprietà)
Pianificazioni dei processi

(solo pianificazioni di proprietà)
Proxy
Creazione/modifica/eliminazione No 1 No
Visualizzazione di un elenco (enumerazione) 2 3
Abilitazione/disabilitazione No Non applicabile
Visualizza proprietà No No
Esecuzione/arresto/avvio Non applicabile Non applicabile Non applicabile
Visualizzazione cronologia processo Non applicabile Non applicabile Non applicabile
Eliminazione cronologia processo Non applicabile No 4 Non applicabile Non applicabile
Collegamento/scollegamento Non applicabile Non applicabile Non applicabile

1 Impossibile modificare la proprietà del processo.

2 Può ottenere l'elenco degli operatori disponibili da usare in sp_notify_operator e nella finestra di dialogo Proprietà processo di Management Studio.

3 Elenco di proxy disponibili solo nella finestra di dialogo Proprietà passaggio processo di Management Studio.

4 Ai membri di SQLAgentUserRole deve essere concessa in modo esplicito l'autorizzazione EXECUTE per sp_purge_jobhistory per eliminare la cronologia dei processi nei processi di cui sono proprietari. I membri di tale ruolo non possono eliminare la cronologia di altri processi.

Autorizzazioni per SQLAgentReaderRole

Il ruoloSQLAgentReaderRole include tutte le autorizzazioni per SQLAgentUserRole e le autorizzazioni per visualizzare l'elenco dei processi multiserver disponibili, le loro proprietà e la loro cronologia. I membri di questo ruolo possono visualizzare non solo i processi e le pianificazioni di processo di cui sono proprietari ma anche l'elenco di tutti i processi, le pianificazioni di processo e le relative proprietà. I membri del ruoloSQLAgentReaderRole non possono modificare la proprietà dei processi per ottenere accesso a processi di cui non sono già proprietari. Ai membri del ruolo SQLAgentReaderRole è visibile solo il nodo Processi in Esplora oggetti di SQL Server Management Studio.

Importante

Prendere in considerazione le implicazioni di sicurezza prima di concedere l'accesso proxy ai membri di SQL ServerAgentdatabaseroles. I membri del ruolo SQLAgentReaderRole sono automaticamente membri del ruolo SQLAgentUserRole. Ciò significa che i membri del ruolo SQLAgentReaderRole hanno accesso a tutti i proxy di SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole e possono usare questi proxy.

La tabella seguente contiene il riepilogo delle autorizzazioni per il ruolo SQLAgentReaderRole sugli oggetti di SQL Server Agent.

Azione Operatori Processi locali Processi multiserver Pianificazioni dei processi Proxy
Creazione/modifica/eliminazione No 1 (solo processi di proprietà) No Sì (solo pianificazioni di proprietà) No
Visualizzazione di un elenco (enumerazione) 2 3
Abilitazione/disabilitazione No Sì (solo processi di proprietà) No Sì (solo pianificazioni di proprietà) Non applicabile
Visualizza proprietà No No
Modifica proprietà No Sì (solo processi di proprietà) No Sì (solo pianificazioni di proprietà) No
Esecuzione/arresto/avvio Non applicabile Sì (solo processi di proprietà) No Non applicabile Non applicabile
Visualizzazione cronologia processo Non applicabile Non applicabile Non applicabile
Eliminazione cronologia processo Non applicabile No 4 No Non applicabile Non applicabile
Collegamento/scollegamento Non applicabile Non applicabile Non applicabile Sì (solo pianificazioni di proprietà) Non applicabile

1 Impossibile modificare la proprietà del processo.

2 Può ottenere l'elenco degli operatori disponibili da usare in sp_notify_operator e nella finestra di dialogo Proprietà processo di Management Studio.

3 Elenco di proxy disponibili solo nella finestra di dialogo Proprietà passaggio processo di Management Studio.

4 Ai membri di SQLAgentReaderRole deve essere concessa in modo esplicito l'autorizzazione EXECUTE per sp_purge_jobhistory per eliminare la cronologia dei processi nei processi di cui sono proprietari. I membri di tale ruolo non possono eliminare la cronologia di altri processi.

Autorizzazioni per SQLAgentOperatorRole

SQLAgentOperatorRole è il ruolo predefinito del database di SQL Server Agent con più privilegi. E include tutte le autorizzazioni dei ruoli SQLAgentUserRole e SQLAgentReaderRole. I membri di questo ruolo possono inoltre visualizzare proprietà di operatori e proxy e possono enumerare i proxy e gli avvisi disponibili sul server.

I membri del ruoloSQLAgentOperatorRole hanno autorizzazioni aggiuntive su pianificazioni e processi locali. Possono eseguire, arrestare o avviare tutti i processi locali e possono eliminare la cronologia processo di qualsiasi processo locale del server. Possono inoltre attivare o disabilitare tutte le pianificazioni e i processi locali del server. Per abilitare o disabilitare processi locali o pianificazioni, i membri di questo ruolo devono usare le stored procedure sp_update_job e sp_update_schedule. I membri del ruolo SQLAgentOperatorRole possono specificare solo i parametri che definiscono il nome o l'ID del processo o della pianificazione e il parametro @enabled. Se si specifica un qualsiasi altro parametro, l'esecuzione di queste stored procedure non viene portata a termine. I membri del ruoloSQLAgentOperatorRole non possono modificare la proprietà dei processi per ottenere l'accesso a processi di cui non sono già proprietari.

I nodi Processi, Avvisi, Operatori e Proxy inclusi in Esplora oggetti di SQL Server Management Studio sono visibili ai membri del ruolo SQLAgentOperatorRole. Solo il nodo Log degli errori non è visibile ai membri di questo ruolo.

Importante

Prendere in considerazione le implicazioni di sicurezza prima di concedere l'accesso proxy ai membri di SQL ServerAgentdatabaseroles. I membri del ruolo SQLAgentOperatorRole sono automaticamente membri dei ruoli SQLAgentUserRole e SQLAgentReaderRole. Ciò significa che i membri del ruolo SQLAgentOperatorRole hanno accesso a tutti i proxy di SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole o SQLAgentReaderRole e possono usare questi proxy.

La tabella seguente contiene il riepilogo delle autorizzazioni di SQLAgentOperatorRole sugli oggetti di SQL Server Agent.

Azione Avvisi Operatori Processi locali Processi multiserver Pianificazioni dei processi Proxy
Creazione/modifica/eliminazione No No 2 (solo processi di proprietà) No Sì (solo pianificazioni di proprietà) No
Visualizzazione di un elenco (enumerazione) 1
Abilitazione/disabilitazione No No 3 No 4 Non applicabile
Visualizza proprietà
Modifica proprietà No No Sì (solo processi di proprietà) No Sì (solo pianificazioni di proprietà) No
Esecuzione/arresto/avvio Non applicabile Non applicabile Numero Non applicabile Non applicabile
Visualizzazione cronologia processo Non applicabile Non applicabile Non applicabile Non applicabile
Eliminazione cronologia processo Non applicabile Non applicabile Numero Non applicabile Non applicabile
Collegamento/scollegamento Non applicabile Non applicabile Non applicabile Non applicabile Sì (solo pianificazioni di proprietà) Non applicabile

1 Può ottenere l'elenco degli operatori disponibili da usare in sp_notify_operator e nella finestra di dialogo Proprietà processo di Management Studio.

2 Non è possibile modificare la proprietà del processo.

3 I membri di SQLAgentOperatorRole possono abilitare o disabilitare i processi locali di cui non sono proprietari usando la stored procedure sp_update_job e specificando i valori per il @enabled e i parametri @job_id (o @job_name). Se un membro di questo ruolo specifica un qualsiasi altro parametro per questa stored procedure, la sua esecuzione non viene portata a termine.

4 I membri di SQLAgentOperatorRole possono abilitare o disabilitare le pianificazioni di cui non sono proprietari usando la stored procedure sp_update_schedule e specificando i valori per il @enabled e i parametri @schedule_id (o @name). Se un membro di questo ruolo specifica un qualsiasi altro parametro per questa stored procedure, la sua esecuzione non viene portata a termine.

Assegnazione di più ruoli a utenti

I membri del ruolo predefinito del server sysadmin hanno accesso a tutte le funzionalità di SQL Server Agent. Se un utente non è membro del ruolo sysadmin, ma è membro di più di un ruolo predefinito del database di SQL Server Agent, è importante tenere presente il modello ad autorizzazioni concentriche di questi ruoli. Poiché i ruoli con privilegi di livello più alto comprendono sempre tutte le autorizzazioni dei ruoli con privilegi di livello più basso, a un utente che è membro di più di un ruolo vengono concesse automaticamente le autorizzazioni associate al ruolo con privilegi di livello più alto di cui questo utente è membro.

Vedi anche

Implementazione della sicurezza di SQL Server Agent
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)