近正在测试数据库复制,想删除发布服务器的发布数据库时,突然提示这个
无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。已将数据库上下文更改为 "AdventureWorks2008R2"。 (Microsoft SQL Server,错误: 15517)
终于在网上找到解决办法,记录以备忘。
解决办法1
选中数据库实例,右键-属性-文件-查看 实例的所有者是否为空,如果为空 请点击
选则用户 即可。
解决方法2
select owner_sid ,lo.sid, lo.name, lo.loginname ,db_name(database_id)
from master.sys.databases da
inner join sys.syslogins lo on da.owner_sid = lo.sid
更改所有者为sa 或当前账号:
USE AdventureWorks2008R2; --数据库名称
EXEC sp_changedbowner 'sa'; --数据库系统管理员
后来 才回忆起来,原来我是用附件文件和组的方法的还原数据库,因为新附加的数据库需要设置所有者才能建立数据库关系图,所以才会出现以上情况。引以为戒