Fonctionnalité pratique pour ne pas dire nécessaire, l’Agent SQL Server est le planificateur de tâches de SQL Server.
Il permet d’effectuer des tâches très variées, qui vont de l’exécution d’une procédure stockée à celle d’un script PowerShell en passant par celle d’un package SQL Server Integration Services et bien d’autres, et ce, à intervalles de temps réguliers et planifiés.
Côté sécurité, cette fonctionnalité n’est pas en reste, puisque tout job a un propriétaire.
Il est donc requis de vérifier que le propriétaire d’un job à les droits nécessaires à l’exécution de celui-ci.
Cela peut se faire de deux façons : par l’interface graphique de SQL Server Management Studio, ou bien en requêtes.
Voyons cela plus en détails :
=> Par des requêtes
Voici la requête qui permet de trouver le propriétaire de tous les jobs :
1 2 3 4 5 6 7 8 9 | ------------------------------- -- Nicolas Souquet - 27/11/2011 ------------------------------- SELECT J.name AS job_name , SP.name AS job_owner_name FROM msdb.dbo.sysjobs AS J INNER JOIN sys.server_principals AS SP ON SP.sid = J.owner_sid WHERE J.name = 'monJob' |
En dé-commentant la dernière ligne, on peut trouver le propriétaire d’un job en particulier.
Si l’on souhaite le changer, il suffit d’exécuter :
1 2 3 4 5 6 | UPDATE msdb.dbo.sysjobs SET owner_sid = SP.sid FROM msdb.dbo.sysjobs AS J CROSS JOIN sys.server_principals AS SP WHERE J.name = 'monJob' AND SP.name = 'nomDeLogin' |
Et le tour est joué
=> Par l’interface graphique :
Il suffit de se rendre dans les propriétés du job en question :
Une fenêtre s’ouvre alors, montrant le propriétaire du job dans la saisie texte à la même étiquette :
On peut dès lors changer ce propriétaire à l’aide du bouton de parcours des utilisateurs, (les 3 points de suspension à droite ce cette saisie) ou bien saisir un nom de connexion existant.
On trouve les connexions existantes toujours dans l’explorateur d’objets (F8) :
Bonne gestion des connexions et des jobs
ElSüket