数据库主体在数据库中拥有一个架构,并且无法删除消息

rst*_*kly 42 sql-server-2008 sql-server

我试图从数据库中删除一个主体,但不能,因为它拥有一个架构。但是,当我去编辑用户时,取消选中架构的框是蓝色的并且无法移除。如何从这些架构中删除主体?

Tho*_*ger 40

尝试使用 T-SQL 来执行此操作:

alter authorization
on schema::YourSchemaName
to dbo
go

drop user TheUserYouWantToDelete
go
Run Code Online (Sandbox Code Playgroud)

您不能删除作为架构所有者的主体,因此将ALTER AUTHORZATION拥有的架构(我使用YourSchemaName,但显然用数据库中的拥有架构替换了它)dbo更改为(同样,您可以将所有权更改为您需要的任何主体)环境)。这将允许您删除以前拥有架构的用户(例如我使用的目的TheUserYouWantToDelete,但这将是您想要删除的现在非所有者)。


woo*_*dvi 38

T-SQL 方式有效。感谢 http://zarez.net/?p=179 我找到了 SSMS 方法来做到这一点(UI)。

从 Sql Server Management Studio 更改架构所有者:

Expand your database -> Security -> Schemas
Run Code Online (Sandbox Code Playgroud)

在对象资源管理器详细信息中,您可以看到架构和所有者的列表:

在此处输入图片说明

如果您不知道用户拥有什么架构,请检查用户的属性。

在此处输入图片说明

打开用户拥有的架构的属性,然后单击“搜索”以查找新的所有者。如果您不认识新主人,您可以“浏览”一位。

Properites -> Search -> Browse
Run Code Online (Sandbox Code Playgroud)

并且您可以将架构所有者更改为 dbo(或任何最合适的人)。

在此处输入图片说明

  • T-SQL 方式更好、更灵活。通过 GUI 来做这件事总是很痛苦! (2认同)
  • 注意:F7 是显示细节的快捷方式,如果它没有出现 (2认同)