I've attempted to implement solution three from the following Q & A:
Allow non-sysadmin, non-owner of a SQL Server Agent job to execute it
Table created and stored procedure created in msdb, inserted rows as needed.
When I execute the stored procedure in an SSMS query window as the non-owner of the job, it executes as expected. However, when I put the execute command in a SQL Server job, the execution dialogue box reports successful execution, but the job did not run - as evidenced by lack of impact on the tables the job affects.
Using SQL Server 2014, a non-owner user has these permissions within msdb: SQLAgentReaderRole, stored procedure execute, is member of a db role that has db_owner permission and is named on the indicated table. This user also has ownership of the job which executes the stored procedure.
What am I missing?