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

Eve*_*ien 59 sql-server permissions sql-server-2005

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

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

- - 要么 - -

数据库没有使用数据库图表所需的一个或多个支持对象.你想创造它们吗?

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

SQL*_*ace 94

要更改对象所有者,请尝试以下操作

EXEC sp_changedbowner 'sa'
Run Code Online (Sandbox Code Playgroud)

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

  • 根据BOL:此功能将在Microsoft SQL Server的未来版本中删除.避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序.请改用ALTER AUTHORIZATION.https://msdn.microsoft.com/en-us/library/ms178630(v=sql.110).aspx (8认同)

Ale*_*Aza 84

要更改数据库所有者:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa
Run Code Online (Sandbox Code Playgroud)

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

  • @ilter - 不确定我理解你的评论.问题是'将此数据库的所有者更改为'sa'的语法是什么?'.我相信我回答了这个问题.如果运行此语句,DB owner将更改为sa.此外,这是推荐使用的语法,与使用可能最终会退役的旧sp_changedbowner相反. (2认同)