Issue
Today, I have read one issue over one forum, one user is having below 3 DB roles on MSDB but whenever user tries to run SQL Agent job, it gets the 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.
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Resolution
We have found that someone has denied the execute permissions from SQLAgentUserRole
over sp_start_job
stored procedure in MSDB.
We have run the below query to check the permissions over sp_start_job
stored procedure in MSDB.
USE MSDB
GO
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’
I have found that someone has denied the execute permissions from SQLAgentUserRole
over sp_start_job
stored procedure in MSDB.
By running the below query, execute permission has been given back & issue has been resolved.
USE MSDB
GO
GRANT EXECUTE ON SP_START_JOB TO SQLAGENTUSERROLE
Reference