我尝试使用 SQL Server 2008 创建数据库图表,但出现错误:

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

然后我尝试了以下操作:

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

弹出下一个错误:

MSG 15404,Level 16,State 11,第1行无法获得有关Windows NT组/用户“ Win-ndkphuppnfl Administrator”,错误代码0x534的信息。

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

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

有帮助吗?

解决方案

您应该考虑数据库所有权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

其他提示

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

  1. 右键单击您的数据库,选择属性
  2. 进入选项页面
  3. 在右下的下拉列表中,标有“兼容性级别”,选择“ SQL Server 2005(90)” 3-1。如果收到比较错误,请选择“SQL Server 2008”。
  4. 转到文件页面
  5. 在所有者文本框中输入“sa”。5-1 或单击省略号 (...) 并选择合法所有者。
  6. 点击确定

完成此操作后,您现在将能够访问数据库图表。

enter image description here

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

它的工作原理。

在所有者文本框中输入“SA”,而不是“SA”。这为我工作。

我有同样的问题。结果, 我想观看我的图,我创建工作的同一天,在家里。但我不能因为这个消息的。结果 我发现该数据库的所有者是我的电脑的用户-as预期。但因为计算机是在公司的域名,而我没有连接到公司的网络,数据库解决不了所有人。

所以我所做的就是更改所有者为本地用户和它的工作!结果 希望这可以帮助别人。

对数据库

您更改用户单击鼠标右键,属性,文件所有者

此固定对我来说。它设置下的“文件的数据库的属性窗口的部分中发现的所有者,并且如通过管理工作室编写脚本。

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

按照 sp_changedbowner的文档这个现在已不适用。

根据以色列的答案。 Aaron的答案是这种非弃用变化。

选择您的数据库 - 右键 - 选择属性。

在页面的左侧选择文件

在OWNER框,选择按钮,它在它有三个点(...)

现在选择用户“sa和点击OK

我刚刚经历了这一点。我读过此页面上的建议,以及对SQL管理局建议(这是同样的事情),并没有上述的工作。

在最后,我除去帐户并重新创建(具有相同的用户名/密码)。就这样,所有的问题就走开了。

可悲的是,这意味着我不知道哪里出了问题,所以我不能分享任何别的东西。

1.右键单击您的数据库, 2.然后选择属性。 3.Select在兼容性级别选项中选择SQL 2008 [100],如果您使用Microsoft SQL 2008年的工作。

4.然后选择文件,并写入(SA)在文本框owner`s

100%为我工作。

要解决这个问题,一个简单的方法是右键点击你的数据库的名称,选择“新建查询”,输入“EXEC sp_changedbowner的‘山’”,并执行查询。然后你会好到哪里去。

您必须输入管理员右键单击到Microsoft SQL Server Management Studio,然后以管理员身份运行

只需要在查询编辑器来执行它 ALTER AUTHORIZATION ON DATABASE :: YourDatabase TO [域\帐户];

,真正的问题是,默认所有者(dbo)不具有在all.As映射到它的登录我试图映射sa登录到我接收到另一错误,说明数据库所有者“用户,组,或角色“DBO”已经存在......“不过,如果你试试这个代码它实际上将作品:

  
    

EXEC sp_dbcmptlevel的 'yourDB', '90';

         

         

ALTER AUTHORIZATION ON DATABASE :: yourDB TO “yourLogin”

         

         

使用[yourDB]

         

         

EXECUTE AS USER = N'dbo” REVERT

         

  

右击你的数据库,然后选择属性。 选择兼容性级别选项中选择SQL 2005 [90],而不是2008年,如果你正在使用Microsoft SQL 2008的工作。 然后选择文件,并在owner`s文本写(SA)。 它可能会工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top