数据库关系图支持对象无法安装无有效所有者

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (30)

我试图用SQLServer 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

弹出下一个erorr:

Msg 15404, Level 16, State 11, Line 1 Could not obtain information about Windows NT group/user 'WIN-NDKPHUPPNFL\Administrator', error code 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),为了确保服务器重命名已在SQLServer中生效,还可能需要发出以下命令:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO
用户回答回答于

在SQLServerManagementStudio中,执行以下操作:

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

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

扫码关注云+社区