Top Activity in OEM reports that dbms_scheduler jobs run as the job_creator user?
You have to distinct between the user of the current session you used for logon and the name of the database user whose privileges are currently active (see also About Definer's Rights and Invoker's Rights). The Scheduler jobs are running under Definer's Rights.

You can get the name of the database user whose privileges are currently active by SYS_CONTEXT('USERENV', 'CURRENT_USER'), see SYS_CONTEXT

In order to understand, try this test-case:

sqlplus kjohnston

CREATE TABLE UTILITIES.A_SCHEDULER_TEST 
   (username VARCHAR2(30), CURRENT_USER VARCHAR2(30), ts TIMESTAMP);

BEGIN
    DBMS_SCHEDULER.CREATE_JOB(
        job_name =&gt; 'UTILITIES.SCHEDULE_TEST', 
        job_type =&gt; 'PLSQL_BLOCK', 
      job_action =&gt; 'begin insert into UTILITIES.A_scheduler_test values (USER, SYS_CONTEXT(''USERENV'', ''CURRENT_USER''), LOCALTIMESTAMP ); commit; end;', 
      repeat_interval =&gt; 'FREQ=MINUTELY;INTERVAL=1;BYSECOND=00', 
        auto_drop =&gt; FALSE, 
        enabled =&gt; TRUE);

    DBMS_SCHEDULER.CREATE_JOB(
        job_name =&gt; 'kjohnston.SCHEDULE_TEST', 
        job_type =&gt; 'PLSQL_BLOCK', 
      job_action =&gt; 'begin insert into UTILITIES.A_scheduler_test values (USER, SYS_CONTEXT(''USERENV'', ''CURRENT_USER''), LOCALTIMESTAMP ); commit; end;', 
      repeat_interval =&gt; 'FREQ=MINUTELY;INTERVAL=1;BYSECOND=10', 
        auto_drop =&gt; FALSE, 
        enabled =&gt; TRUE);
END;


The content of A_scheduler_test will be like this

USERNAME      CURRENT_USER      TS       
------------  ---------------   --------------------
KJOHNSTON     UTILITIES         2015-12-15 08:50:00
KJOHNSTON     KJOHNSTON         2015-12-15 08:50:10


JOB_CREATOR is relevant only for result of USER, resp SYS_CONTEXT('USERENV', 'SESSION_USER'), but the PL/SQL block runs in context of Job owner.

If you run the scheduler job manually you can define how it is executed: RUN_JOB Procedure

use_current_session: This specifies whether or not the job run should occur in the same session that the procedure was invoked from. 


use_current_session => TRUE (default): The job runs as the user who called RUN_JOB.
use_current_session => FALSE: The job runs as the user who is the job 
owner.


However, when I test this in my database (11.1.0.7.0), this seems to be a (documentation) bug in Oracle! 


For use_current_session => FALSE, function USER always returns the job creator.
For use_current_session => TRUE, function USER always returns the job owner.