1、新建账户SQLAgentRead, 授予msdb库的SQLAgentReaderRole和“dbdatareader”角色
授予账户msdb 库SQLAgentReaderRole角色
agent_datetime 是 msdb 内置系统存储过程函数,SQLAgentReaderRole 角色默认没有授予该函数的执行权限,只给了读取作业历史表的查询权限,需要单独授予执行权限(推荐,最小权限)
agent_datetime 是 msdb 内置系统存储过程函数,SQLAgentReaderRole 角色默认没有授予该函数的执行权限,只给了读取作业历史表的查询权限,需要单独授予执行权限(推荐,最小权限)
USE msdb;
GO
GRANT EXECUTE ON dbo.agent_datetime TO [SQLAgentRead];
GO
查询
SELECT j.name AS JobName, CONVERT(VARCHAR(19), msdb.dbo.agent_datetime(h.run_date, h.run_time), 120) AS RunTime, h.run_status AS RunStatus, ISNULL(h.message, '') AS MessageText,h.run_date, h.run_time FROM msdb.dbo.sysjobhistory h WITH (NOLOCK) INNER JOIN msdb.dbo.sysjobs j WITH (NOLOCK) ON j.job_id = h.job_id WHERE h.step_id = 0 AND h.run_status = 1 AND msdb.dbo.agent_datetime(h.run_date, h.run_time) >= DATEADD(HOUR, -12, GETDATE()) ORDER BY h.run_date DESC, h.run_time DESC

浙公网安备 33010602011771号