无法安装数据库图表支持对象

时间:2010-11-05 02:12:12

标签: database sql-server-2008

这非常令人困惑。每当我尝试在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

我的问题在于我并不真正理解这段代码在做什么,并且使用上述语句(似乎成功执行)尝试不同的用户名或数据库名称似乎无法解决我的问题。

有人能想到我可能遗失的任何事情吗?

4 个答案:

答案 0 :(得分:25)

您是否尝试过这组步骤,它可能会解决您的问题:

  

在SQL Server Management Studio中执行   以下内容:

     
      
  1. 右键单击您的数据库,选择属性
  2.   
  3. 转到选项页面
  4.   
  5. 在右侧标记为“兼容级别”的下拉列表中选择“SQL   Server 2005(90)“
  6.   
  7. 转到文件页面
  8.   
  9. 在所有者文本框中输入“sa”。
  10.   
  11. 点击确定
  12.   

假设这样做并且您可以添加数据库图表,则可以将所有者更改回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