LogReader fails with error 15517:

2010-02-25 21:16:35.054 Status: 0, code: 20011, text: 'The process could not execute 'sp_replcmds' on 'CHRISSKACER'.'.
2010-02-25 21:16:35.056 The process could not execute 'sp_replcmds' on 'CHRISSKACER'.
2010-02-25 21:16:35.057 Status: 0, code: 15517, text: 'Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.'.
2010-02-25 21:16:35.058 Status: 0, code: 22037, text: 'The process could not execute 'sp_replcmds' on 'CHRISSKACER'.'.

The SQL Agent was configured to run using 'ChrisSkAcer\Chris'.  In login properties, this account has “system administrator” rights.  To eliminate JOB properties or SQL Agent authentication  as problem, tried running LogRead.exe from CMD prompt while logged on using the same administrator count.

c>logread.exe -Publisher [CHRISSKACER] -PublisherDB [AdventureWorksLT] -Distributor [CHRISSKACER] -DistributorSecurityMode 1 -continuous

>>same error.

--Connected to Publisher via SSMS and executed LogReader "read" stored proc as 'sa'


>>same error.

--display SQL Server login token (also called Security ID or SID)
select * from sys.login_token


--display dbo token in Published database
USE <Published DatabaseName>

select * from sys.user_token

>> dbo 0xA065CF7E784B9B5FE77C87709C280100

--confirms the DBO SID doesn't match login SID
--Change owner


sp_changedbowner 'ChrisSkAcer\Chris'

>> error login was already user in the database

--The login was a user, but not DBO
--DROP data base USER 'ChrisSkAcer\Chris' and added user back as DBO.

sp_changedbowner 'ChrisSkAcer\Chris'

Verify User SID

Needed to verify the user_token (SID) not matches the login_in SID used to identify the login when user first connects to SQL Server.

select * from sys.user_token

>> dbo 0x5EEC29DAFF38CF043B0FFE4AEB030000

Now the sys.login_token matches sys.user_token.  LogReader connected as DBO and processed commands