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(或任何最合适的人)。
