• I think I figured it out with the help of this reference:

    http://sqlblog.com/blogs/tibor_karaszi/archive/2009/09/19/sql-server-agent-jobs-and-user-contexts.aspx

    Looks like the original and effective logons from the job are the service account, but the effective database user is dbo. In comparison, when I impersonate the service account, the original logon is my account and the effective logon and database user are the service account.

    For now, I overcame this by setting up the job step to execute as the service account in the advanced options of the job step properties.