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

我试图用SQL Server 2008创build一个数据库diagramm,但是发生错误:

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

然后我尝试了以下内容:

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 

下一个erorrpopup:

消息15404,级别16,状态11,行1无法获取有关Windows NT组/用户'WIN-NDKPHUPPNFL \ Administrator',错误代码0x534的信息。

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

我能做些什么来解决这个恼人的错误?

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

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

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

 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. 右键点击你的数据库,select属性
  2. 转到选项页面
  3. 在标有“Compatibility Level”的右边下拉菜单中select“SQL Server 2005(90)”3-1。 如果收到可比性错误,请select“SQL Server 2008”。
  4. 转到文件页面
  5. 在所有者文本框中input“sa”。 5-1或点击省略号(…)并select一个合适的所有者。
  6. 点击确定

这样做之后,您现在可以访问数据库图表。

在这里输入图像说明

1.select您的数据库>> Right Click >> Select Properties
2.在页面左侧selectFILE
3.在OWNER框中,select其中有三个点(…)的button
4.现在select用户'sa'NT AUTHORITY\SYSTEM ,然后单击确定

在所有者文本框中input“SA”而不是“sa”。 这对我有效。

我有同样的问题。
我想看看我在家里工作的同一天创build的图表。 但是我不能因为这个消息。
我发现数据库的所有者是我的电脑的用户 – 正如所料。 但由于电脑在公司的领域,而我没有连接到公司的networking,数据库无法解决业主。

所以我所做的是将所有者更改为本地用户 ,并且工作正常!
希望这有助于某人。

通过右键单击数据库,属性,文件,所有者来更改用户

这为我修好了。 它将在数据库属性窗口的“文件”部分中设置所有者,并由pipe理工作室编写脚本。

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

根据sp_changedbowner文档,现在已经废弃了。

根据以色列的答案。 亚伦的答案是这个不被弃用的变化。

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

有用。

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

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

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

1.右键点击你的数据库,2.然后select属性。 3.select兼容级别的选项selectSQL 2008 [100]如果您正在使用Microsoft SQL 2008。

4.然后select文件并在所有者文本框中写入(sa)

100%为我工作。

解决这个问题的一个更简单的方法是右键单击数据库的名称,select“新build查询”,input“exec sp_changedbowner'sa'”并执行查询。 那么你会好起来的。

你必须inputpipe理员权限点击微软SQL服务器pipe理工​​作室,并作为pipe理员运行

真正的问题是,默认所有者(dbo)根本没有映射到它的login。当我试图将salogin映射到数据库所有者时,我收到另一个错误,指出“用户,组或angular色'dbo'已经存在…“。但是,如果你尝试这个代码,它会实际上工作:

EXEC sp_dbcmptlevel'yourDB','90';

修改DATABASE :: yourDB到“yourLogin”

使用[yourDB]

EXECUTE AS USER = N'dbo'REVERT

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

Interesting Posts