Ruoli di database predefiniti di SQL Server Agent
In SQL Server 2005 gli amministratori hanno a disposizione i seguenti ruoli predefiniti del database msdb, che consentono 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 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 utilizzare SQL Server Agent, un utente deve essere membro di uno di questi ruoli di database predefiniti o membro del ruolo di server predefinito 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 basso livello è 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 loro concesso. Ciò può avere implicazioni a livello di protezione e nelle sezioni seguenti verranno esaminate queste implicazioni ruolo per ruolo.
Autorizzazioni per SQLAgentUserRole
SQLAgentUserRole è il ruolo di database predefinito di SQL Server Agent con privilegi di più basso livello. Dispone di autorizzazioni solo su operatori, processi locali e pianificazioni di processi. I membri del ruolo SQLAgentUserRole dispongono di 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.
Nota sulla protezione |
---|
Prima di concedere l'accesso proxy ai membri dei ruolidi database di SQL ServerAgent, è bene tenere conto delle implicazioni a livello di protezione. 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 SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole e possono usare questi proxy. |
Nella tabella seguente vengono riepilogate le autorizzazioni per il ruolo SQLAgentUserRole su oggetti di SQL Server Agent.
Azione |
Operatori |
Processi locali (solo processi di proprietà) |
Pianificazioni di 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 |
Attivazione/disattivazione |
No |
Sì |
Sì |
Non applicabile |
Visualizzazione di proprietà |
No |
Sì |
Sì |
No |
Esecuzione/interruzione/avvio |
Non applicabile |
Sì |
Non applicabile |
Non applicabile |
Visualizzazione cronologia di un processo |
Non applicabile |
Sì |
Non applicabile |
Non applicabile |
Eliminazione cronologia di un processo |
Non applicabile |
No 4 |
Non applicabile |
Non applicabile |
Collegamento/scollegamento |
Non applicabile |
Non applicabile |
Sì |
Non applicabile |
1 Non è possibile modificare la proprietà del processo.
2 È possibile ottenere un elenco degli operatori disponibili da utilizzare in sp_notify_operator e nella finestra di dialogo Proprietà processo di Management Studio.
3 L'elenco dei proxy è disponibile solo nella finestra di dialogo Proprietà passaggio processo di Management Studio.
4 Ai membri del ruolo SQLAgentUserRole deve essere concessa esplicitamente un'autorizzazione EXECUTE su sp_purge_jobhistory per l'eliminazione della cronologia dei processi di cui sono proprietari. I membri di tale ruolo non possono eliminare la cronologia di altri processi.
Autorizzazioni per SQLAgentReaderRole
Il ruolo SQLAgentReaderRole comprende 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 ruolo SQLAgentReaderRole non possono modificare la proprietà dei processi per ottenere l'accesso a processi di cui non sono già proprietari. In Esplora oggetti di SQL Server Management Studio i membri del ruolo SQLAgentReaderRole possono vedere solo il nodo Processi.
Nota sulla protezione |
---|
Prima di concedere l'accesso proxy ai membri dei ruolidi database di SQL ServerAgent, è bene tenere conto delle implicazioni a livello di protezione. 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 SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole e possono usare questi proxy. |
Nella tabella seguente vengono riepilogate le autorizzazioni per il ruolo SQLAgentReaderRole su oggetti di SQL Server Agent.
Azione |
Operatori |
Processi locali |
Processi multiserver |
Pianificazioni di 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 |
Attivazione/disattivazione |
No |
Sì (solo processi di proprietà) |
No |
Sì (solo pianificazioni di proprietà) |
Non applicabile |
Visualizzazione di proprietà |
No |
Sì |
Sì |
Sì |
No |
Modifica di proprietà |
No |
Sì (solo processi di proprietà) |
No |
Sì (solo pianificazioni di proprietà) |
No |
Esecuzione/interruzione/avvio |
Non applicabile |
Sì (solo processi di proprietà) |
No |
Non applicabile |
Non applicabile |
Visualizzazione cronologia di un processo |
Non applicabile |
Sì |
Sì |
Non applicabile |
Non applicabile |
Eliminazione cronologia di un 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 Non è possibile modificare la proprietà del processo.
2 È possibile ottenere un elenco degli operatori disponibili da utilizzare in sp_notify_operator e nella finestra di dialogo Proprietà processo di Management Studio.
3 L'elenco dei proxy è disponibile solo nella finestra di dialogo Proprietà passaggio processo di Management Studio.
4 Ai membri del ruolo SQLAgentReaderRole deve essere concessa esplicitamente un'autorizzazione EXECUTE su sp_purge_jobhistory per l'eliminazione della cronologia dei processi di cui sono proprietari. I membri di tale ruolo non possono eliminare la cronologia di altri processi.
Autorizzazioni per SQLAgentOperatorRole
SQLAgentOperatorRole è il ruolo di database predefinito di SQL Server Agent con privilegi di livello più alto. Esso comprende 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 ruolo SQLAgentOperatorRole dispongono di autorizzazioni aggiuntive su pianificazioni e processi locali. Possono eseguire, interrompere o avviare tutti i processi locali e possono eliminare la cronistoria di un qualsiasi processo locale del server. Possono inoltre attivare o disattivare tutte le pianificazioni e i processi locali del server. Per attivare o disattivare processi locali o pianificazioni, i membri di questo ruolo devono utilizzare 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 ruolo SQLAgentOperatorRole 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 contenuti in Esplora oggetti di SQL Server Management Studio sono visibili a membri del ruolo SQLAgentOperatorRole. Solo il nodo Log degli errori non è visibile ai membri di questo ruolo.
Nota sulla protezione |
---|
Prima di concedere l'accesso proxy ai membri dei ruolidi database di SQL ServerAgent, è bene tenere conto delle implicazioni a livello di protezione. 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 SQL Server Agent che sono stati concessi al ruolo SQLAgentUserRole o al ruolo SQLAgentReaderRole e possono usare questi proxy. |
Nella tabella seguente vengono riepilogate le autorizzazioni per il ruolo SQLAgentOperatorRole su oggetti di SQL Server Agent.
Azione |
Avvisi |
Operatori |
Processi locali |
Processi multiserver |
Pianificazioni di 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ì |
Attivazione/disattivazione |
No |
No |
Sì3 |
No |
Sì4 |
Non applicabile |
Visualizzazione di proprietà |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
Modifica di proprietà |
No |
No |
Sì (solo processi di proprietà) |
No |
Sì (solo pianificazioni di proprietà) |
No |
Esecuzione/interruzione/avvio |
Non applicabile |
Non applicabile |
Sì |
No |
Non applicabile |
Non applicabile |
Visualizzazione cronologia di un processo |
Non applicabile |
Non applicabile |
Sì |
Sì |
Non applicabile |
Non applicabile |
Eliminazione cronologia di un processo |
Non applicabile |
Non applicabile |
Sì |
No |
Non applicabile |
Non applicabile |
Collegamento/scollegamento |
Non applicabile |
Non applicabile |
Non applicabile |
Non applicabile |
Sì (solo pianificazioni di proprietà) |
Non applicabile |
1 È possibile ottenere un elenco degli operatori disponibili da utilizzare 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 del ruolo SQLAgentOperatorRole possono attivare o disattivare processi locali di cui non sono proprietari utilizzando la stored procedure sp_update_job e specificando valori per i parametri @enabled e @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 del ruolo SQLAgentOperatorRole possono attivare o disattivare pianificazioni di cui non sono proprietari utilizzando la stored procedure sp_update_schedule e specificando valori per i parametri @enabled e @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 dispongono di 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 di 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.