如何更改SQL Server数据库的所有者?

时间:2009-04-20 18:13:41

标签: sql-server sql-server-2005 permissions

当我不小心点击Database Diagrams选项卡时,我收到以下错误之一:

  

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

---或---

  

数据库没有一个或多个   需要使用的支持对象   数据库图表。你愿意吗?   创造它们?

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

4 个答案:

答案 0 :(得分:86)

更改对象所有者请尝试以下

EXEC sp_changedbowner 'sa'

然而,这不是你的问题,看到图表必须创建Da Vinci Tools对象(你会看到以dt_开头的表和过程)

答案 1 :(得分:80)

更改数据库所有者:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa

从SQL Server 2014开始,您仍然可以使用sp_changedbowner,即使Microsoft承诺在未来"中删除它。 SQL Server 2012之后的版本。但是它们从SQL Server 2014 BOL中删除了它。

答案 2 :(得分:4)

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

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

答案 3 :(得分:0)

以下是更改所有DBS(不包括系统)

的所有者的方法
EXEC sp_msforeachdb'
USE [?]
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb''
BEGIN
 exec sp_changedbowner ''sa''
END
'