数据库图表支持对象无法安装...没有有效的所有者

时间:2010-01-11 17:00:30

标签: sql-server sql-server-2008 database-diagramming

我尝试使用SQL Server 2008创建数据库,但发生错误:

  

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

然后我尝试了以下内容:

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

下一个erorr弹出:

  

Msg 15404,Level 16,State 11,Line 1   无法获取有关的信息   Windows NT组/用户   'WIN-NDKPHUPPNFL \ Administrator',错误   代码0x534。

问题是PC的名称已更改为“DevPC”我在更新脚本中也更改了此项,但仍然是相同的错误15404.

我该怎么做才能解决这个恼人的错误?

14 个答案:

答案 0 :(得分:200)

在SQL Server Management Studio中执行以下操作:

  1. 右键单击您的数据库,选择属性
  2. 转到选项页面
  3. 在右侧下拉标记为"兼容级别"选择" SQL Server 2005(90)" 3-1。选择" SQL Server 2008"如果您收到可比性错误。
  4. 转到文件页面
  5. 输入" sa"在所有者文本框中。 5-1或点击省略号(...)并选择合法的所有者。
  6. 点击确定
  7. 执行此操作后,您现在可以访问数据库图表。

    enter image description here

答案 1 :(得分:176)

您应该考虑SQL身份验证帐户的数据库所有权;那么您不必担心帐户来来往往,数据库或实例移动到不同的服务器,以及您的下一个PC名称更改。我有几个系统供我们使用:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

或者,如果您要将所有者更改为该本地管理员帐户,则应该是:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

因为将计算机重命名为DevPC已取消了以前名为WIN-ND...\Administrator的本地帐户,这也使数据库的当前所有者无效。

如果SELECT @@SERVERNAME;不准确(应该说DevPC),那么为了确保您的服务器重命名已在SQL Server中保留,您可能还需要发出以下命令:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO

答案 2 :(得分:5)

在所有者文本框中输入“SA”而不是“sa”。这对我有用。

答案 3 :(得分:5)

我遇到了同样的问题 我想查看我的图表,这是我在工作当天在家里创建的。但由于这个消息,我无法做到这一点 我发现数据库的所有者是我的计算机的用户 - 如预期的那样。但由于计算机位于公司的域中,并且我没有连接到公司的网络,因此数据库无法解析所有者。

所以我所做的是将所有者更改为本地用户并且它有效!! 希望这有助于某人。

通过右键单击数据库,属性,文件,所有者

来更改用户

答案 4 :(得分:5)

USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

有效。

答案 5 :(得分:3)

这为我修好了。它设置了在'文件下找到的所有者'数据库属性窗口的一部分,由管理工作室编写。

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

根据sp_changedbowner documentation,现在已弃用。

基于以色列的回答。 Aaron的回答是这种不贬低的变体。

答案 6 :(得分:2)

选择数据库-右键单击-选择属性

在页面左侧选择FILE

在“所有者”框中选择带有三个点(…)的按钮

现在选择用户“ sa”,然后单击“确定”

答案 7 :(得分:0)

我刚刚经历过这个。我已经阅读了这个页面上的建议,以及SQL Authority的建议(这是相同的事情),并且没有上述工作。

最后,我删除了帐户并重新创建(使用相同的用户名/密码)。就这样,所有问题都消失了。

可悲的是,这意味着我不知道出了什么问题,所以我无法分享其他任何东西。

答案 8 :(得分:0)

1.右键点击你的数据库, 2.然后选择属性。 3.如果您使用的是Microsoft sql 2008,请选择兼容级别中的选项选择sql 2008 [100]。

4.然后选择文件并在所有者的文本框中写(sa)

100%适合我。

答案 9 :(得分:0)

解决此问题的更简单方法是右键单击数据库的名称,选择“新建查询”,键入“exec sp_changedbowner'sa'”并执行查询。然后你会很高兴。

答案 10 :(得分:0)

您必须以管理员身份输入右键单击microsofft sql server management studio并以管理员身份运行

答案 11 :(得分:0)

只需要在查询编辑器中执行它 在DATABASE :: YOURDatabase上更改授权到[domain \ account];

答案 12 :(得分:-3)

真正的问题是默认所有者(dbo)根本没有映射到它的登录。当我尝试将sa登录映射到数据库所有者时,我收到另一个错误,指出“用户,组或角色'dbo'已经存在......“。但是,如果您尝试使用此代码,它实际上会起作用:

  
    

EXEC sp_dbcmptlevel'yourDB','90';

         

         

将DATABASE :: yourDB上的授权更改为“yourLogin”

         

         

使用[yourDB]

         

         

执行用户= N'dbo'REVERT

         

  

答案 13 :(得分:-3)

右键单击数据库,然后选择属性。 如果您正在使用Microsoft sql 2008,请选择兼容级别中的选项选择sql 2005 [90]而不是2008。 然后选择文件并在所有者的文本框中写入(sa)。 它可能会起作用