2010-11-05 32 views
10

这很让人困惑。不能安装无法安装数据库关系图支持对象

数据库关系图支持对象:每当我试图SQL Server Management Studio中快车(SQL Server 2008中)中的数据库节点下增加(甚至视图)的数据库图表节点我收到此错误因为这个数据库没有有效的拥有者。要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录名,然后添加数据库图支持对象。

好的,很好。问题是,根据Management Studio,我的登录名是数据库的所有者。当我登录到Management Studio时使用Windows身份验证,并且如果我转到数据库属性对话框的文件页面,我的登录名是所有者。

所以接下来我想,好吧,也许我不是正确的服务器角色的成员,实际上是所有者,但是,我的登录名是系统管理员服务器角色,其中,根据this MDSN page是其成员拥有数据库的一个好处。

所以最后我做了一些google搜索,我看到people telling me尝试执行如下语句:

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

这确实属于ServerFault.com。你可能会在这里得到很好的答案,但这个问题更多的是在DBA领域,而不是在开发者领域。 – David 2010-11-05 02:19:39

+0

@大卫,这是有道理的。我投了票把它搬到了SF。 – 2010-11-05 02:45:54

+0

可能重复的[数据库图表支持对象不能安装...没有有效的所有者](http://stackoverflow.com/questions/2043382/database-diagram-support-objects-cannot-be-installed-no-valid-所有者) – 2014-10-16 10:19:56

回答

20

你试过这一套步骤,它可能会解决你的问题:

在SQL Server Management Studio中做 如下:

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

假设这个工程,你可以添加数据库图表,然后你可以改变所有者回到您的Windows用户名。

+0

那么,“sa”的作品。我可以通过该用户名添加数据库图表。但只要我改回我的Windows用户名,我就有同样的老问题。为什么“sa”有效?此外,为什么数据库图很难获得使用权限? :-) – 2010-11-05 02:43:12

+0

一旦它与sa一起工作,设置您的Windows帐户作为所有者,然后尝试添加该帐户下的图表。我有一种感觉,当安装SQL Server时,你将DB设置为sa。现在,如果您在使用sa凭证登录时将Windows帐户添加为DBA,则应该能够返回到Windows帐户并拥有您需要的权限。 – 2010-11-05 13:22:15

+1

嗯,我如何将我的Windows帐户设置为DBA?这是我认为我缺少的部分。 – 2010-11-05 13:41:02

0

这将工作;

ALTER AUTHORIZATION ON DATABASE :: yourDB为NT AUTHORITY \ SYSTEM

但这仅仅是对于临时..解决方案,以任何理由,如果你要恢复数据库,那么问题将存在..

1

只需尝试一下。

Alter AUTHORIZATION ON DATABASE::YourDbName TO [sa]; 
0

那么,有一段时间我尝试了几件事情,没有任何工作。之后,我仔细阅读了错误,并且我意识到仅在错误中提出了解决方案。我只需要仔细阅读。

下面是我做,使这项工作步骤:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa 
GO 

OR

  • 选择数据库>右键点击>选择属性
  • 在页面左侧选择FILE
  • 在OWNER框中,选择其中有三个点(...)的按钮
  • 现在选择用户'sa'或NT AUTHORITY \ SYSTEM,然后单击确定。