• I like your solution. I had a similar problem and solved it a bit differently. I created a login to the server with permissions in msdb to execute jobs (SQLAgentOperatorRole), then added this login to a user database with a stored procedure that the user needing to execute the job had execute permissions on. Inside the stored procedure is the following:

    EXECUTE AS LOGIN = 'SQLAgentLogin'

    EXEC msdb.dbo.sp_start_job @pJobName

    REVERT

    This allows the user to get instant feedback and isolates them from the job system.