Con quale account vengono eseguiti gli step di un job di Sql Server 2000?

Per sapere con quale account verrano eseguiti gli step di un job è sufficiente avere in mente questi due punti:

1. Lo step è di tipo T-SQL

Se l'owner del job è un account che fa parte del fixed server role sysadmin, allora lo step sarà sempre eseguito utilizzando l'account del servizio Sql Server Agent.

Nel caso in cui l'owner del job non faccia parte del ruolo in questione, lo step verrà sempre eseguito con l'account dell'owner del job, indipendentemente da chi lancerà l'esecuzione del job.

2.  Lo step è di tipo CmdExec oppure ActiveX Script

Se l'owner del job è un account che fa parte del fixed server role sysadmin, allora lo step sarà sempre eseguito utilizzando l'account del servizio Sql Server Agent.

Nel caso in cui l'owner del job non faccia parte di tale ruolo, allora lo step verrà eseguito utilizzando il Proxy Account. Se questo particolare account non è stato configurato ed abilitato (potete controllare tramite le proprietà dal Server Server Agent, nella sezione Job System Tab), allora lo step fallirà.

Attenzione ai DTS!

E' bene notare che i DTS, quando vengono schedulati, utilizzano uno step di tipo CmdExec per l'esecuzione, quindi, se all'interno del DTS avete fatto uso dell'Integrated Authentication, attenzione a controllare effettivamente che anche l'account usato dal job per eseguire lo step abbia i permessi necessari per fare il lavoro specificato dai task del DTS.

Se non fate attenzione a questa particolarità vi potreste trovare nella situazione in cui un DTS lanciato manualmente funziona alla perfezione, mentre invece fallisce (dando un problema di permessi) quando viene eseguito in modo schedulato.

Print | posted on lunedì 11 luglio 2005 22:53

Comments have been closed on this topic.

Copyright © Davide Mauri

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski