Issue : Today I have read one issue over one forum, One user is having below 3 DB roles on MSDB but whenever user try to run SQL Agent job, it get below error message.
We have Checked that SQL Agent job related DB role is properly given to user. Also, Job is working fine by the use is having sysadmin roles.
Resolution : We have found that someone has deny the execute permissions from SQLAgentUserRole over sp_start_job store procedure in MSDB.
We have Run the below query to check the permissions over sp_start_job store procedure in MSDB.
SELECT PR.NAME, DP.PERMISSION_NAME, DP.STATE_DESC
FROM MSDB.SYS.DATABASE_PERMISSIONS DP
JOIN MSDB.SYS.OBJECTS O ON DP.MAJOR_ID = O.OBJECT_ID
JOIN MSDB.SYS.DATABASE_PRINCIPALS PR
ON DP.GRANTEE_PRINCIPAL_ID = PR.PRINCIPAL_ID
WHERE O.NAME = ‘SP_START_JOB’
Found that someone has deny the execute permissions from SQLAgentUserRole over sp_start_job store procedure in MSDB.
By running the below query, execute permission has been given back & issue has been resolved.
GRANT EXECUTE ON SP_START_JOB TO SQLAGENTUSERROLE
Reference : Rohit Garg (https://mssqlfun.com/)