2009-04-20 70 views
42

当我无意中点击数据库图表选项卡上,我收到以下错误之一: 不能安装,因为这 数据库没有有效所有者如何更改SQL Server数据库的所有者?

数据库关系图支持对象。 要继续,首先使用数据库属性对话框 或ALTER AUTHORIZATION语句 的 的文件页面数据库所有者设置为有效 登录,然后添加数据库关系图 支持对象。

---或---

的数据库不具有一个或多个 使用 数据库图表所需的支持对象。你是否希望 创建它们?

将此数据库的所有者更改为'sa'的语法是什么?

+0

我不明白为什么你认为这有什么关系所有者所有者的方法吗?它只是想知道它是否应该创建对象来使图表成为可能。 – 2009-04-20 18:15:58

+0

如果我更改所有者,则不会提示您创建对象。我不确定他们之后是否会自动创建。 – 2009-04-20 18:28:00

回答

68

改变对象所有者尝试以下

EXEC sp_changedbowner 'sa' 

那不过是不是你的问题,看看达芬奇Tools对象已经被创建(你会看到与DT_开始表和特效)图之后

+4

按照BOL:此功能将在未来版本的Microsoft SQL Server中删除。避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。改为使用ALTER AUTHORIZATION。 https://msdn.microsoft.com/en-us/library/ms178630(v=sql.110).aspx – 2015-04-27 12:31:08

3

这是一个提示,用于创建一堆不存在的对象,如sp_help_diagram(?)。

这应该与db的所有者无关。

+1

你能解释为什么在我更换主人后不再提示我这么做吗?对象是自动创建还是SQL Server停止询问我是因为我的帐户不再是所有者? – 2009-04-20 18:29:47

+0

在这种情况下,数据库由已被删除的登录所拥有。我不确定为什么,因为“sa”拥有我们所有的数据库。 – gbn 2009-04-21 03:50:43

62

要更改数据库所有者:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa 

与SQL Server 2014,你仍然可以使用sp_changedbowner为好,尽管微软承诺在SQL Server 2012之后的“未来”版本中将其删除。但是,它们将其从SQL Server 2014 BOL中删除。

0

这里是改变所有DBS(不含系统)

EXEC sp_msforeachdb' 
USE [?] 
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb'' 
BEGIN 
exec sp_changedbowner ''sa'' 
END 
' 
相关问题