SQLServer CDC的capture的作业报错:
无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 [SQLSTATE 42000] (错误 15517)
这个库本来就有CDC,然后通过备份还原到其它服务器上去了,重新开启CDC就报错了。
查询 sys.server_principals:
select
*
from
sys.server_principals
select name,sid from [
Parameter].sys.database_principals where name='dbo'
根据sid查:
select name,sid from sys.server_principals where sid=0x0105000000000005150000007A1A03FB0B92AEDE767AC2B5F4010000
sid为空
给数据库Parameter指定所有者:sa。
ALTER
AUTHORIZATION
ON
DATABASE
::Parameter
TO
sa
问题解决,CDC作业可以正常捕获。