升级到SQL Server 2008后,发现一个复制出错,显示:
Cannot execute as the database principal because the principal "dbo" does not exist
检查发现因此数据库是备份后从其它服务器还原过来,而dbo关联的login在本服务器上无效,SQL Server 2005对此未做检查,而2008的log reader执行时要检查此帐号的权限,故有此错误,解决办法如下:
USE master
GO
ALTER AUTHORIZATION ON DATABASE::[database_name] TO [sa];
此则将还原数据库的dbo用户与login帐户sa重新绑定。