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

Roo*_*ian 129 sql-server sql-server-2008 database-diagramming

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

无法安装数据库关系图支持对象,因为此数据库没有有效的所有者.要继续,首先使用"数据库属性"对话框的"文件"页面或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
Run Code Online (Sandbox Code Playgroud)

下一个erorr弹出:

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

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

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

Isr*_*ies 206

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

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

完成此操作后,您现在可以访问数据库图表.

在此输入图像描述

  • 有人可以解释在这些步骤中更改兼容级别的目的吗?只是将文件下的所有者设置为'sa'对我来说已经足够了(即使我没有启用sql auth,奇怪). (3认同)
  • 有什么理由为什么数据库不应该拥有所有者?我正在进入其他人的产品数据库,并且没有所有者设置。这是故意的吗?(没有人会知道)。 (2认同)

Aar*_*and 177

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

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];
Run Code Online (Sandbox Code Playgroud)

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

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];
Run Code Online (Sandbox Code Playgroud)

因为重命名机器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
Run Code Online (Sandbox Code Playgroud)


小智 7

USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO
Run Code Online (Sandbox Code Playgroud)

有用.


小智 6

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

\n\n

选择页面左侧的文件

\n\n

在“所有者”框中,选择其中包含三个点 (\xe2\x80\xa6) 的按钮

\n\n

现在选择用户 \xe2\x80\x98sa 并单击“确定”

\n


Ada*_*V C 5

在所有者文本框中输入"SA"而不是"sa".这对我有用.


小智 5

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

因此,我要做的就是将所有者更改为本地用户,并且成功了!!
希望这对某人有帮助。

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