1
當我嘗試運行Sql代理作業時,我正在檢查是否沒有先前的實例在同一時間運行。下面的查詢給出:運行SqlAgent作業時的權限問題
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
但是,我得到的是
The SELECT permission was denied on the object 'syssessions', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (Error 229).
該步驟失敗的錯誤。作業步驟由具有sysadmin
特權的帳戶運行。
我試圖在msdb
數據庫也給db_owner
特權的帳戶。仍然面臨同樣的問題。
你能指導我,關於如何解決這個權限問題?
謝謝。再次開始相同的工作,不會開始工作。我們擔心併發問題。 –