Lorsque j'essaie d'exécuter un travail d'agent Sql, je vérifie qu'il n'y a pas d'instances antérieures s'exécutant en même temps. La requête est donnée ci-dessous:Problème d'autorisations lors de l'exécution de SqlAgent Job
IF NOT EXISTS(SELECT
1
FROM msdb.dbo.sysjobactivity ja
LEFT JOIN msdb.dbo.sysjobhistory jh
ON ja.job_history_id = jh.instance_id
JOIN msdb.dbo.sysjobs j
ON ja.job_id = j.job_id
JOIN msdb.dbo.sysjobsteps js
ON ja.job_id = js.job_id
AND ISNULL(ja.last_executed_step_id,0)+1 = js.step_id
WHERE ja.session_id = (SELECT TOP 1 session_id FROM msdb.dbo.syssessions ORDER BY agent_start_date DESC)
AND j.name = N'JobName'
AND start_execution_date is not null
AND stop_execution_date is null
)
BEGIN
-- code to run the job
END
Mais, je reçois une erreur qui
The SELECT permission was denied on the object 'syssessions', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (Error 229).
L'étape a échoué. L'étape du travail est exécutée par un compte avec les privilèges sysadmin
.
J'ai essayé de donner le compte avec le privilège db_owner
dans la base de données msdb
également. Toujours, face au même problème.
Pouvez-vous me guider, comment résoudre ce problème de permission?
Merci. Recommencer le même travail, ne démarre pas le travail. Nous étions préoccupés par les problèmes de concurrence. –