这非常令人困惑。每当我尝试在SQL Server Management Studio Express(SQL Server 2008)中的数据库节点下添加(甚至查看)Database Diagrams节点时,我都会收到此错误:
无法安装数据库图表支持对象,因为此数据库没有有效的所有者。要继续,首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录,然后添加数据库关系图支持对象。
好的,好的。问题是,根据Management Studio,我的登录名是数据库的所有者。当我登录Management Studio时,我正在使用Windows身份验证,如果我转到“数据库属性”对话框的“文件”页面,我的登录名是所有者。
接下来我想,好吧,也许我不是正确服务器角色的成员实际上是所有者,但是,我的登录是 sysadmin 服务器角色的成员,根据{{3}}是拥有数据库的必备条件。
所以最后我做了一些谷歌搜索,我看到this MDSN page尝试执行这样的语句:
EXEC sp_dbcmptlevel 'yourDB', '90';
go
ALTER AUTHORIZATION ON DATABASE::yourDB TO "yourLogin"
go
use [yourDB]
go
EXECUTE AS USER = N'dbo' REVERT
go
我的问题在于我并不真正理解这段代码在做什么,并且使用上述语句(似乎成功执行)尝试不同的用户名或数据库名称似乎无法解决我的问题。
有人能想到我可能遗失的任何事情吗?
答案 0 :(得分:25)
您是否尝试过这组步骤,它可能会解决您的问题:
在SQL Server Management Studio中执行 以下内容:
- 右键单击您的数据库,选择属性
- 转到选项页面
- 在右侧标记为“兼容级别”的下拉列表中选择“SQL Server 2005(90)“
- 转到文件页面
- 在所有者文本框中输入“sa”。
- 点击确定
醇>
假设这样做并且您可以添加数据库图表,则可以将所有者更改回Windows用户名。
答案 1 :(得分:2)
只需尝试一下。
Alter AUTHORIZATION ON DATABASE::YourDbName TO [sa];
答案 2 :(得分:0)
这将有效;
更改DATABASE :: yourDB到NT AUTHORITY \ SYSTEM
的授权但这只适用于临时解决方案,无论如何你必须恢复数据库然后问题就会出现..
答案 3 :(得分:0)
这对我有用
ALTER AUTHORIZATION ON DATABASE ::DATABASE TO sa