我得到以下错误

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.

我读过关于ALTER AUTHORIZATION的文章,但我不知道这发生在哪个数据库中。这个错误被频繁地抛出,并且错误日志以每天1GB的速度增长。


当前回答

进入属性-文件。 所有者名称必须为空。只要在用户名中输入“sa”,问题就会得到解决。

其他回答

另一种方法

ALTER AUTHORIZATION 
ON DATABASE::[DatabaseName]
TO [A Suitable Login];

进入属性-文件。 所有者名称必须为空。只要在用户名中输入“sa”,问题就会得到解决。

当数据库是从不同的SQL服务器或实例恢复时,也可能发生这种情况。在这种情况下,数据库中的安全主体'dbo'与恢复数据库的SQL服务器上的安全主体不相同。 不要问我是怎么知道的……

USE [<dbname>]
GO
sp_changedbowner '<user>' -- you can use 'sa' as a quick fix in databases with SQL authentication

KB913423 -在SQL Server 2005中恢复数据库后,不能运行包含EXECUTE AS子句的语句或模块

做图形。

数据库右键点击——>属性——>文件——>选择数据库所有者——>选择[sa]——ok