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 | Sì 1 | Sì | No |
Visualizzazione di un elenco (enumerazione) | Sì 2 | Sì | Sì | Sì 3 |
Abilitazione/disabilitazione | No | Sì | Sì | Non applicabile |
Visualizza proprietà | No | Sì | Sì | No |
Esecuzione/arresto/avvio | Non applicabile | Sì | Non applicabile | Non applicabile |
Visualizzazione cronologia processo | Non applicabile | Sì | Non applicabile | Non applicabile |
Eliminazione cronologia processo | Non applicabile | No 4 | Non applicabile | Non applicabile |
Collegamento/scollegamento | Non applicabile | Non applicabile | Sì | 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 | Sì 1 (solo processi di proprietà) | No | Sì (solo pianificazioni di proprietà) | No |
Visualizzazione di un elenco (enumerazione) | Sì 2 | Sì | Sì | Sì | Sì 3 |
Abilitazione/disabilitazione | No | Sì (solo processi di proprietà) | No | Sì (solo pianificazioni di proprietà) | Non applicabile |
Visualizza proprietà | No | Sì | Sì | Sì | 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 | Sì | Sì | 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 | Sì 2 (solo processi di proprietà) | No | Sì (solo pianificazioni di proprietà) | No |
Visualizzazione di un elenco (enumerazione) | Sì | Sì 1 | Sì | Sì | Sì | Sì |
Abilitazione/disabilitazione | No | No | Sì 3 | No | Sì 4 | Non applicabile |
Visualizza proprietà | Sì | Sì | Sì | Sì | Sì | Sì |
Modifica proprietà | No | No | Sì (solo processi di proprietà) | No | Sì (solo pianificazioni di proprietà) | No |
Esecuzione/arresto/avvio | Non applicabile | Non applicabile | Sì | Numero | Non applicabile | Non applicabile |
Visualizzazione cronologia processo | Non applicabile | Non applicabile | Sì | Sì | Non applicabile | Non applicabile |
Eliminazione cronologia processo | Non applicabile | Non applicabile | Sì | 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)