Database 无法安装数据库关系图支持对象

Database 无法安装数据库关系图支持对象,database,sql-server-2008,Database,Sql Server 2008,这很令人困惑。每当我尝试在SQL Server Management Studio Express(SQL Server 2008)中的数据库节点下添加(甚至查看)数据库关系图节点时,我都会收到此错误: 无法安装数据库关系图支持对象,因为此数据库没有有效的所有者。要继续,请首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORITION语句将数据库所有者设置为有效登录名,然后添加数据库关系图支持对象 好的。问题是,根据管理工作室的说法,我的登录名是数据库的所有者。当我登录到Mana

这很令人困惑。每当我尝试在SQL Server Management Studio Express(SQL Server 2008)中的数据库节点下添加(甚至查看)数据库关系图节点时,我都会收到此错误:

无法安装数据库关系图支持对象,因为此数据库没有有效的所有者。要继续,请首先使用“数据库属性”对话框的“文件”页面或ALTER AUTHORITION语句将数据库所有者设置为有效登录名,然后添加数据库关系图支持对象

好的。问题是,根据管理工作室的说法,我的登录名是数据库的所有者。当我登录到ManagementStudio时,我正在使用Windows身份验证,如果我转到“数据库属性”对话框的“文件”页面,我的登录名就是所有者

所以接下来我想,好吧,也许我不是真正所有者的正确服务器角色的成员,但是,我的登录名是sysadmin服务器角色的成员,这是拥有数据库的额外条件

最后,我在谷歌上搜索了一下,我想尝试执行如下语句:

EXEC sp_dbcmptlevel 'yourDB', '90';
go
ALTER AUTHORIZATION ON DATABASE::yourDB TO "yourLogin"
go
use [yourDB]
go
EXECUTE AS USER = N'dbo' REVERT
go
我这里的问题是,我并不真正理解这段代码在做什么,而且,用上面的语句尝试不同的用户名或数据库名称(似乎执行成功)似乎都不能解决我的问题


有人能想到我可能遗漏了什么吗?

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

在SQLServerManagementStudio中执行以下操作: 以下:

  • 右键单击数据库,选择属性
  • 转到“选项”页
  • 在右侧标有“兼容性级别”的下拉列表中,选择“SQL” 伺服器2005(90)”
  • 转到“文件”页
  • 在所有者文本框中输入“sa”
  • 点击OK
  • 假设这是可行的,并且您可以添加DB图表,然后您可以将所有者更改回您的Windows用户名。

    这将起作用

    将数据库::yourDB上的授权更改为NT AUTHORITY\SYSTEM

    但这只是临时的。。解决方案,无论出于何种原因,如果您必须恢复DB,那么问题就会出现。

    只需尝试一下

    Alter AUTHORIZATION ON DATABASE::YourDbName TO [sa];
    
    这对我有用

    将数据库::数据库上的授权更改为sa
    
    这确实属于ServerFault.com。您可能会在这里得到很好的答案,但这个问题更多地是在DBA领域,而不是在开发人员领域。@David,这是有道理的。我已经投票决定把它移到旧金山。可能是重复的井,“sa”工作。我可以通过该用户名添加DB图表。但一旦我改回我的Windows用户名,我就有了同样的老问题。为什么“sa”起作用?此外,为什么数据库关系图如此难以获得使用权限?:-)使用sa后,将您的windows帐户设置为所有者,然后尝试在该帐户下添加图表。我有一种感觉,当安装SQL Server时,您将sa设置为DBA。现在,如果您在使用sa凭据登录时将Windows帐户添加为DBA,您应该能够返回Windows帐户并获得所需的权限。嗯,如何将我的Windows帐户设置为DBA?这是我认为我缺少的部分。请按照:中的说明操作,并为帐户选择正确的服务器角色和数据库访问设置。